sql 多表联合查询,按照某个结果进行排序
表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.该产品最后一次销售日期