Mysql SQL-我需要显示2012年销售的商品名称、商品价格和数量

Mysql SQL-我需要显示2012年销售的商品名称、商品价格和数量,mysql,sql,sql-server,Mysql,Sql,Sql Server,我需要显示2012年的商品名称、商品价格和销售数量。我有这个: 选择m.item_name、m.price、COUNT(od.qty)作为数量、日期_格式(om.odate、%Y')作为日期 从菜单中选择m,订单详情选择od,订单主菜单选择om 其中m.id=od.orderid和日期_格式(om.odate,'%Y')='2012' 按m.item\u名称分组 按数量订购ASC 限制7; 这就给了我: 我需要让它看起来像这样: 我该怎么办?您要找的是sum()而不是count() 请检查

我需要显示2012年的商品名称、商品价格和销售数量。我有这个:

选择m.item_name、m.price、COUNT(od.qty)作为数量、日期_格式(om.odate、%Y')作为日期
从菜单中选择m,订单详情选择od,订单主菜单选择om
其中m.id=od.orderid和日期_格式(om.odate,'%Y')='2012'
按m.item\u名称分组
按数量订购ASC
限制7;
这就给了我:

我需要让它看起来像这样:


我该怎么办?

您要找的是
sum()
而不是
count()


请检查此项,它将有助于美化sql表输出:)

如果不希望在输出中显示日期,请从select查询中删除日期_格式(om.odate,“%Y”)作为日期

我相信你的问题一定是:

从菜单中选择m项目名称、m价格、计数(od数量)作为数量作为m, 订单详细信息为od,订单主信息为om,其中m.id=od.orderid和 日期格式(om.odate,'%Y')='2012'按m.item分组\u名称按数量排序 ASC限值7


大约在1992年,这种连接方式实际上遭到了反对。不管怎么说,在这里一般都不鼓励这样做。
SELECT m.item_name
        , SUM(m.price) as price
        , SUM(od.qty) as qty
        , DATE_FORMAT(om.odate, '%Y') as date 
FROM menu as m
INNER JOIN order_detail od ON od.orderid = m.id 
WHERE DATE_FORMAT(om.odate, '%Y') = '2012'      
GROUP BY m.item_name, DATE_FORMAT(om.odate, '%Y') 
ORDER BY od.qty ASC
LIMIT 7;