繁体   English   中英

在选择列表中,列“ tbl_Stock.Item_Name”无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中

[英]Column 'tbl_Stock.Item_Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause

我有一个名为tbl_stock的数据库表。

例如:

Order_ID  Item_Name  Item_Stock  Item_Dispatched  Item_Avaliable 
........  .......... ..........  ...............  ..............
1           abc           10            2               8
2           abc           13            7               6
3           abc           23            10              13
4           xyz           43            12              31
5           xyz            4            1               3

我想在网格视图中放置一个输出,如下所示:

Item_Name  Item_Stock  Item_Dispatched  Item_Avaliable 
.........  ..........  ...............  ..............
abc           46            19              27
xyz           47            13              33

我想计算特定的列值。 当使用下面给出的SQL查询时,显示一个错误。 错误是“ Column 'tbl_Stock.Item_Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

SQL:

SELECT DISTINCT Item_Name, 
COUNT(Item_Stock) AS Item_Stock, 
COUNT(Item_Dispatched) AS Item_Dispatched, 
COUNT(Item_Avaliable) AS Item_Avaliable 
FROM tbl_Stock

添加group by子句,而不是像下面这样区分:

SELECT Item_Name, 
SUM(Item_Stock) AS Item_Stock, 
SUM(Item_Dispatched) AS Item_Dispatched, 
SUM(Item_Avaliable) AS Item_Avaliable 
FROM tbl_Stock
GROUP BY Item_Name

它将按Item_Name将所有记录分组,并对每一列进行SUM运算。

如错误所示,添加GROUP BY以计算每个项目的总计

SELECT /*DISTINCT*/ Item_Name, 
SUM(Item_Stock) AS Item_Stock, 
SUM(Item_Dispatched) AS Item_Dispatched, 
SUM(Item_Avaliable) AS Item_Avaliable 
FROM tbl_Stock
GROUP BY Item_Name

在DISTINCT中也将不需要。

COUNT()函数将返回数字或行(对于Item_Stock,Item_Dispatched和Item_Avaliable列中的abc项目为3,对于xyz为2),因此要获得所需的结果,请对其进行更改并使用SUM()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM