我的数据库里有两张表。tbl_Transaction_Detailtbl_Categrory_Typetbl_Transaction_Detail使用Category_Type_IDtbl_Category_Type作为外键。这是我的桌子:
mysql - SQL查询以SUM和order by子句连接两个表的数据-LMLPHP
mysql - SQL查询以SUM和order by子句连接两个表的数据-LMLPHP
我想把Quantitytbl_Transaction_DetailCategory_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/

10-10 04:56