簡體   English   中英

在某些條件下合並兩個選擇查詢結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM