sql 联合查询并找出最大值和排序
刚才提了一个问题50分,很多人给我回答.我已经结贴,在此表示感谢.
现在我遇到的问题在原来的基础上又增加了一些难度,希望大家给予帮助.
表1 cangku
id 产品名称
表2 xiaoshou
id 产品id 数量 单价 总额 销售日期
现在我要通过联合查询实现以下功能
产品名称 销售数量 销售总额 该产品最后一次销售日期
要求按照 销售总额进行排序,或者按照最后一次销售日期进行排序,不管有没有销售记录,都要列出所有产品的名称.
请问这样的功能sql 的联合查询语句该怎么写?
[解决办法]
declare @cangku table(id int, 产品名称 varchar(10) )
declare @xiaoshou table(id int,产品id int, 数量 int,单价 int,总额 int,销售日期 datetime)
insert @cangku select 1, 'test '
insert @xiaoshou select 1,1,1,10,10, '2001-01-01 ' union all
select 1,1,1,15,15, '2001-01-02 '
select a.产品名称 ,b.数量 ,b.总额 as 销售总额,b.销售日期 as 该产品最后一次销售日期
from @cangku a
left join
( select *
from @xiaoshou c
where not exists(select 1
from @xiaoshou
where 产品id = c.产品id and 销售日期 > c.销售日期)
) b
on a.id = b.产品id
/*
产品名称 数量 销售总额 该产品最后一次销售日期
---------- ----------- ----------- ------------------------------------------------------
test 1 15 2001-01-02 00:00:00.000
*/