2013-12-23 32 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