2013-12-23 76 views
0

我有邏輯來計算收據金額和收據日期的總和。我不確定下面的t-sql是否適合我的邏輯。t-sql邏輯找到收據金額

我需要最大的接收日期,並會去任何收據日期,即。,01-01-2014這應該給我預付金額支付人身份證。此外,如果最大收貨日期值爲負值,那麼我需要從計算中刪除該值。

WITH rec_cte (amt,recdate) AS 
(
select -40, 01-04-2014 UNION ALL 
select -40,01-04-2014 UNION ALL 
select 40,20-04-2013 UNION ALL 
select -20,10-04-2012 UNION ALL 
select 50,20-04-2011 UNION ALL 
select 40,20-04-2010 UNION ALL 
) 

SELECT SUM(amt),recdate from rec_cte 
+4

請重新表達此問題。首先,SQL語句有錯誤,其次,不清楚你想要/需要什麼結果。 –

回答

0

據我能夠解釋你的問題,你正在尋找基於ID的SUM(amt)。

WITH rec_cte AS 
(
select 1 as id,-40 as amt, '01-04-2014' as recdate UNION ALL 
select 1, -40,'01-04-2014' UNION ALL 
select 2, 40,'20-04-2013' UNION ALL 
select 3, -20,'10-04-2012' UNION ALL 
select 2, 50,'20-04-2011' UNION ALL 
select 1, 40,'20-04-2010' 
) 

SELECT id, SUM(amt) from rec_cte 
--where recdate= '01-04-2014' 
group by id 
having SUM(amt)>=0 
+0

這裏的問題是計算也可以落在兩個收據ID之間的日期的收據金額。即20-07-2-13到01-04-2014我只需要找到相應金額的這些收款日期的近似金額。 – user3120927