我試圖返回groupid's,masteraccountnames和CashAmountDiff的列表,其中具有相同groupid的交易的CashAmount的總和在任何日期都大於100。小組聚合與案例
表架構是像這樣:
TradeT1
TradeId | SubAccountId | MasterAccId | GroupId | TradeDate | TradeType
MasterAccount
Id | MasterAccName
子帳戶
Id | SubAccName | MasterAccountId
每個SubAccount都鏈接到MasterAccount。這是一種多對一的關係。
TradeType決定交易的'方向',無論是借方還是貸方。我無法爲每個groupid添加借方和貸項。我的查詢只是總結一切。我不知道如何合併案件時,信用(乘以CashAmount * -1),案件當借記只使用CashAmount
總是會有超過1個tradeid鏈接到一個groupid。
我在SQL小提琴這裏的表和我一起努力:http://www.sqlfiddle.com/#!3/45580/1/0
SELECT
t.groupId,
ma.MasterAccName,
sum(CASE WHEN t.tradetype = 'Credit'
THEN sum(-1*t.cashamount)
ELSE sum(t.cashamount))
END as CashDiff
FROM tradet1 t
JOIN masteraccount ma
ON t.masteraccid = ma.id
WHERE t.groupid > -1
GROUP BY t.groupid, ma.MasterAccName
HAVING count(t.groupid) > 1 and sum(t.cashamount) > 100
讚賞任何幫助。
無CashAmount或CashAmountDiff列定義 – Paparazzi
代碼更新,但不進行編譯。 http://www.sqlfiddle.com/#!3/45580/9 – user1773949