我的数据库里有两张表。tbl_Transaction_Detail
和tbl_Categrory_Type
。tbl_Transaction_Detail
使用Category_Type_ID
的tbl_Category_Type
作为外键。这是我的桌子:
我想把Quantity
的tbl_Transaction_Detail
和Category_Type_ID
的相加(比如31)。
以下是我对此的查询(在sql server 2008中)
SELECT CAT.Category_type_Name,
CAT.Description,
CAT.Image_url,
CAT.Price,
CAT.Weight,
Sum(TD.Quantity)'Quantity' from tbl_Transaction_Detail as TD
inner join tbl_Category_type as CAT
on TD .Category_Type_ID= CAT.Category_type_ID
WHERE TD.Category_Type_ID = 31
ORDER BY CAT.Category_type_Name,
CAT.Description,
CAT.Image_url,
CAT.Price,
CAT.Weight
但对于所有列的选择,它会逐个显示错误。
最佳答案
必须使用GROUPBY子句,在GROUPBY子句中包括要选择的每个列,但使用聚合函数的列除外。请使用表格别名以提高可读性。
SELECT CAT.Category_type_Name
,CAT.Description
,CAT.Image_url
,CAT.Price
,CAT.Weight
,Sum(TD.Quantity) as Quantity
FROM tbl_Transaction_Detail TD
INNER JOIN tbl_Category_type CAT
on TD.Category_Type_ID=CAT.Category_type_ID
WHERE TD.Category_Type_ID=31
GROUP BY CAT.Category_type_Name
,CAT.Description
,CAT.Image_url
,CAT.Price
,CAT.Weight
ORDER BY CAT.Category_type_Name
,CAT.Description
,CAT.Image_url
,CAT.Price
,CAT.Weight
关于mysql - SQL查询以SUM和order by子句连接两个表的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37547082/