[英]combine two select query result on some conditions
我必須從兩個選擇查詢中獲取結果,其中第二個查詢結果取決於第一個查詢結果。
Table 1: tbl1
EndDate PEL FL
4/24/2015 2 4
6/12/2015 3 5
8/9/2015 4 7
Table 2 : tbl2
EndDate CumEL CumFL
3/20/2015 3 6
4/10/2015 2 9
4/15/2015 1 2
5/10/2015 4 1
5/21/2015 5 5
6/12/2015 8 7
6/15/2015 1 2
7/6/2015 4 1
7/11/2015 5 5
8/9/2015 8 7
我想按照以下標准加入這兩個表:
Select tbl1.* from tbl1
JOIN
Select Sum(CumEL),Sum(CumFL) from tbl2 where tbl2.EndDate <= tbl1.EndDate
所需輸出:
EndDate PEL FL CumEL CumFL
4/24/2015 2 4 6 17
6/12/2015 3 5 23 30
8/9/2015 4 7 41 45
一種方法是使用交叉應用(盡管聯接也可以工作,但是編寫起來稍微復雜一點):
SELECT tbl1.EndDate, tbl1.PEL, tbl1.FL, C.CumEL, C.CumFL
FROM tbl1
CROSS APPLY
(
SELECT SUM(CumEL) AS CumEL, SUM(CumFL) AS CumFL
FROM tbl2
WHERE tbl2.EndDate <= tbl1.EndDate
) AS C;
您可以像這樣使用left join
select tbl1.EndDate, tbl1.PEL, tbl1.FL,
SUM(Coalesce(tbl2.CumEL,0) as CumEL,
SUM(Coalesce(tbl2.CumFL,0)) as CumFL,
from tbl1
left join tbl1 on tbl1.EndDate >= tbl2.EndDate
group by tbl1.EndDate, tbl1.PEL, tbl1.FL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.