日期:2014-05-17  浏览次数:20536 次

请问这两句联合查询如何写?
有两个表,一个销售表data_saledata,另外一个采购表data_buy

这句是按月查出每个月销售总金额并按年月排序:
SELECT DatePart('yyyy',saledate) AS colyear, DatePart('m',saledate) AS colmonth, sum(lastamount) AS saleamount
FROM data_saledata
GROUP BY DatePart('yyyy',saledate), DatePart('m',saledate)
ORDER BY DatePart('yyyy',saledate) DESC , DatePart('m',saledate);

以下这句是按月查出每个月采购总金额并按年月排序:
SELECT DatePart('yyyy',purchasedate) AS colyear, DatePart('m',purchasedate) AS colmonth, sum(amount) AS purchaseamount
FROM data_buy
GROUP BY DatePart('yyyy',purchasedate), DatePart('m',purchasedate)
ORDER BY DatePart('yyyy',purchasedate) DESC , DatePart('m',purchasedate);

我现在想把两个查询的结果显示在一起,并按年月排序,请问SQL命令如何写,谢谢


------解决方案--------------------
select t1.colyear,t1.colmonth,t1.saleamount,t2.purchaseamount
(SELECT?DatePart('yyyy',saledate)?AS?colyear,?DatePart('m',saledate)?AS?colmonth,?sum(lastamount)?AS?saleamount
FROM?data_saledata
GROUP?BY?DatePart('yyyy',saledate),?DatePart('m',saledate)) t1
left join 
(SELECT DatePart('yyyy',purchasedate) AS colyear, DatePart('m',purchasedate) AS colmonth, sum(amount) AS purchaseamount
FROM data_buy
GROUP BY DatePart('yyyy',purchasedate), DatePart('m',purchasedate)) t2 
on t1.colyear=t2.colyear and t1.colmonth=t2.colmonth
order by colyear desc,colmonth