我正在嘗試使用變量條件編寫查詢。反正有沒有使用Union而不是使用Union,而是在另一個表中使用日期列表?使用變量而不是UNION查詢
SELECT
'2014-03-03' AS SnapshotDate
,T2.Pre_PPI_Cycle
,SUM(ISNULL(T2.Pre_PPI_Balance, 0))AS Pre_Balance
,COUNT(ISNULL(T2.Account_Number, 0)) AS Pre_Volume
,ROW_NUMBER() OVER (PARTITION BY Account_Number
ORDER BY Account_Number, SnapshotDate DESC) AS ROW
FROM #TABLE_1 AS T2
WHERE T2.SnapshotDate <= '2014-03-03'
GROUP BY T2.SnapshotDate, T2.Pre_PPI_Cycle, Account_Number
UNION
SELECT
'2014-03-04' AS SnapshotDate
,T2.Pre_PPI_Cycle
,SUM(ISNULL(T2.Pre_PPI_Balance, 0))AS Pre_Balance
,COUNT(ISNULL(T2.Account_Number, 0)) AS Pre_Volume
,ROW_NUMBER() OVER (PARTITION BY Account_Number
ORDER BY Account_Number, SnapshotDate DESC) AS ROW
FROM #PPI_3 AS T2
WHERE T2.SnapshotDate <= '2014-03-04'
GROUP BY T2.SnapshotDate, T2.Pre_PPI_Cycle, Account_Number
編輯
感謝您的幫助,到目前爲止 - 只是爲了澄清 - 這是代碼我現在有。
SELECT
T2.Capture_Date
,T1.Pre_PPI_Cycle
,SUM(ISNULL(T1.Pre_PPI_Balance, 0))AS Pre_Balance
,COUNT(ISNULL(T1.Account_Number, 0)) AS Pre_Volume
,ROW_NUMBER() OVER (PARTITION BY T1.Account_Number
ORDER BY T1.Account_Number, T1.SnapshotDate DESC) AS ROW
FROM
#PPI_3 AS T1
INNER JOIN (SELECT CHILD.Capture_Date
FROM #DATES AS CHILD
WHERE CHILD.Capture_Date <= '2014-03-04') T2
ON T2.Capture_Date = T1.SnapshotDate
GROUP BY T2.Capture_Date, T1.SnapshotDate, T1.Pre_PPI_Cycle, T1.Account_Number
我在我要找更改日期「2014年3月4日」,其保持在表#DATES日期列表的評論如下。例如,如果日期< ='2014-03-03'則返回32條記錄。如果日期< ='2014-03-04'則返回55條記錄。我想要的是總查詢返回87條記錄。這是我正在努力的部分!
感謝大家的幫助 - 感覺我們正在取得進展!
謝謝,山姆
我想要做的是用另一個表中的日期列表替換日期(2014-03-03,2014-03-04等) 。 – user3456377
例如在上述查詢中,第一個返回日期<='2014-03-03'的32個帳戶,然後第二個查詢返回55個帳戶,其中日期<='2014-03-04'所以我想要該查詢總共返回87行。那可能嗎? – user3456377