SQL - 我需要显示 2012 年销售的商品名称、商品价格和数量
Posted
技术标签:
【中文标题】SQL - 我需要显示 2012 年销售的商品名称、商品价格和数量【英文标题】:SQL - I need to display the item name, item price, and number sold in year 2012 【发布时间】:2019-11-15 02:33:23 【问题描述】:我需要显示 2012 年的商品名称、商品价格和销售数量。我有这个:
SELECT m.item_name, m.price, COUNT(od.qty) as qty, DATE_FORMAT(om.odate, '%Y') as date
FROM menu as m, order_detail as od, order_main as om
WHERE m.id = od.orderid AND DATE_FORMAT(om.odate, '%Y') = '2012'
GROUP BY m.item_name
ORDER BY qty ASC
LIMIT 7;
这给了我这个:
enter image description here
我需要让它看起来像这样:
enter image description here
我该怎么办?
【问题讨论】:
【参考方案1】:你正在寻找sum()
而不是count()
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;
【讨论】:
【参考方案2】:请检查一下,这将有助于美化您的 sql 表输出:) Prettifying the select statement output
如果您不希望在输出中显示 DATE_FORMAT(om.odate, '%Y') 作为日期,请从您的选择查询中删除它。
我相信您的查询必须是:
SELECT m.item_name, m.price, COUNT(od.qty) as qty FROM menu as m, order_detail 作为 od,order_main 作为 om WHERE m.id = od.orderid AND DATE_FORMAT(om.odate, '%Y') = '2012' GROUP BY m.item_name ORDER BY qty ASC 限制 7;
【讨论】:
这种加入方式在 1992 年左右被有效弃用。无论如何,在 SO 上通常不鼓励这样做。以上是关于SQL - 我需要显示 2012 年销售的商品名称、商品价格和数量的主要内容,如果未能解决你的问题,请参考以下文章