【问题标题】:Error Subquery uses ungrouped column "i.colorid" from outer query错误子查询使用来自外部查询的未分组列“i.colorid”
【发布时间】:2018-04-17 15:12:40
【问题描述】:

下面是查询

select (select description from Colors where ID = I.ColorID) AS Color,
O.Sono,
O.Customer,
SUM(L.Quantity) AS Quantity, 
O.shipdate,I.VapID,L.OrderID 
from Orderlines  L, Items I, Orders O 
where L.Item = I.SKU AND I.PanelID=3 
AND O.ID=L.OrderID 
AND O.OrderType = 'Sales Order' 
 AND (L.Status < 1 OR L.Status is Null) 
Order by Color, shipdate

此查询出错 "子查询使用外部查询中未分组的列 "i.colorid""

【问题讨论】:

  • 您能提供一些样本数据并期待结果吗?您使用的是什么 DBMS?
  • 不需要这个子查询:(从 ID = I.ColorID 的颜色中选择描述) - 加入颜色表并直接从那里选择
  • @D-Shih Valentina Studio 是一个 DBMS
  • @DanielMarcus 是的,我这样做了,但它开始给出以下错误“内核错误:错误:列“c.description”必须出现在 GROUP BY 子句中或用于聚合函数中”
  • 这工作“从 Orderlines L 中选择 C.description,O.Sono,O.Customer,SUM(L.Quantity) AS Quantity,O.shipdate,I.VapID,L.OrderID,Items I , 订单 O, 颜色 C 其中 L.Item = I.SKU AND I.PanelID=1 AND O.ID=L.OrderID AND O.OrderType = 'Sales Order' AND (L.Status

标签: sql postgresql


【解决方案1】:
select  description  AS Color,
O.Sono,O.Customer,SUM(L.Quantity) AS Quantity, O.shipdate,I.VapID,L.OrderID 
from Orderlines  L, Items I, Orders O, colors c  
where L.Item = I.SKU AND I.PanelID=3 AND O.ID=L.OrderID AND O.OrderType = 'Sales Order' 
and  c.ID = I.ColorID
AND (L.Status < 1 OR L.Status is Null) 
group by description,
O.Sono,O.Customer, O.shipdate,I.VapID,L.OrderID
Order by Color, shipdate

【讨论】:

  • description 给出了模棱两可的错误,所以我已经做了 c.description 了
  • 您做了哪些更改,如何解决问题?
  • 抱歉回复晚了“选择 C.description 作为颜色,O.Sono,O.Customer,CAST(SUM(L.Quantity) AS VARCHAR) 作为数量, CAST(O.shipdate AS VARCHAR) ,I.VapID,L.OrderID 来自 Orderlines L, Items I, Orders O, Colors C 其中 L.Item = I.SKU AND I.PanelID=" + ID + " AND O.ID=L.OrderID AND O.OrderType = 'Sales Order' AND (L.Status
猜你喜欢
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 2020-10-20
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
相关资源
最近更新 更多