表1 cangku
id 产品名称
表2 xiaoshou
id 产品id 数量 单价 总额 销售日期
表3 tuihuo
id 产品id 数量 单价 总额 退货日期
现在我要通过联合查询实现以下功能
产品名称 销售数量 销售总额 该产品最后一次销售日期 退货数量 退货总额 该产品最后一次退货日期
要求 按照最后一次销售日期进行排序,不管有没有销售记录,都要列出所有产品的名称.(我想知道某个产品的销售数量,总额 最后一次销售日期,退货数量,退货总额,最后退货日期)
请问这样的sql 语句怎么写?
这个问题是第三次升级了.谢谢前面几位大哥的指点.
------解决方案--------------------
select
t.产品名称,
t.销售数量,
t.销售总额,
t.该产品最后一次销售日期,
sum(c.数量) as 退货数量,
sum(c.总额) as 退货总额,
max(c.退货日期) as 该产品最后一次退货日期
from
(
select
a.id,
a.产品名称,
sum(b.数量) as 销售数量,
sum(b.总额) as 销售总额,
max(b.销售日期) as 该产品最后一次销售日期
from
cangku a
left join
xiaoshou b
on
a.id=b.产品id
group by
a.id,
a.产品名称
) as t
left join
tuihuo c
on
t.id=c.产品id
group by
t.产品名称,
t.销售数量,
t.销售总额,
t.该产品最后一次销售日期