我有一個記錄用戶ID,日期時間,交易類型和值的用戶表中的交易列表。 TransactionID是主鍵自動增量1. TransactionType定義了存款(1)或取款(2),因此表中的所有值均爲正數。我正在嘗試創建一個運行總計帳戶的聲明。來自交易的賬戶報表SQL
TransactionID UserID DateTime TransactionTypeID Value
1 3112 01-04-2016 12:00 1 5.00
3 3112 01-04-2016 13:00 2 2.00
5 3112 01-04-2016 13:25 2 1.00
8 3112 02-04-2016 12:00 1 10.00
9 3112 02-04-2016 12:35 2 4.00
基本上我想創建賬戶查詢的運行中陳述,總價值創造:
DateTime TransactionTypeID Deposit Withdrawal Balance
01-04-2016 12:00 1 5.00 5.00
01-04-2016 13:00 2 2.00 3.00
01-04-2016 13:25 2 1.00 2.00
02-04-2016 12:00 1 10.00 12.00
02-04-2016 12:35 2 4.00 8.00
我一直在使用OUTER試圖APPLY選擇前一個交易,但沒有爲準單查詢。任何援助,將不勝感激
SELECT
[UserID], [DateTime],
T.[Value] *
(CASE
WHEN [TransactionTypeID] IN (1, -- deposit
2 -- withdrawal
)
THEN -1
ELSE 1
END),
T2.Value AS PrevValue
FROM
[Transaction] T
OUTER APPLY
(SELECT TOP 1 T2.[Value]
FROM [Transaction] T2
WHERE UserID = 3112
AND T2.[TransactionID] > T.TransactionID
ORDER BY T2.TransactionID) AS T2
WHERE
T.[UserID] = 3112
ORDER BY
T.[TransactionID] DESC
該查詢的輸出不符合OP中的條件..僅僅減去每個值,無論它是存款還是提款 – JamieD77