我一直试图解决这个问题很多天。但不会。请帮帮我。
我需要一个SQL列出product_code,product_name,qty_sold,last_order_date,列出在按销售数量排序的日期范围内销售的所有产品。
我的表结构:
tbl_product(产品,PRODUCT_CODE,PRODUCT_NAME)
tbl_order_detail(ORDER_ITEM_ID,ORDER_ID,PRODUCT_ID,数量)
tbl_order(ORDER_ID,order_date的)
答案 0 :(得分:2)
您可以使用group by
计算每种产品的统计信息。然后,您可以使用sum
和max
来检索所需的汇总信息。例如:
select p.product_code
, p.product_name
, sum(od.quantity) as qty_sold
, max(o.order_date) as last_order_date
from tbl_product p
join tbl_order_detail od
on p.product_id = od.product_id
join tbl_order o
on od.order_id = o.order_id
where o.order_date between '2010-01-01' and '2010-02-01'
group by
p.product_code
, p.product_name
order by
sum(od.quantity) desc
答案 1 :(得分:1)
select
p.product_code, p.product_name, sum(od.quantity) as qty_sold, max(o.order_date) as last_order_date
from tbl_product p join tbl_order o join tbl_order_detail od on
(p.product_id=o.product_id, o.order_id = od.order_id)
where
order_date between :first_day: and :last_day:
group by product_code, product_name
order by last_order_date
抱歉,我现在无法测试。
关键点是:使用group by子句聚合数量和订单日期值,并使用max和sum来查找所需的值。
:first_day:和:last_day:是实际值的占位符
希望我帮助你