Tsql t-sql逻辑查找收据金额

Tsql t-sql逻辑查找收据金额,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,我有逻辑来计算收据金额和收据日期之和。我不确定下面的t-sql是否适合我的逻辑 我需要最大接收日期,并将选择任何接收日期,即2014年1月1日。这将为我提供为个人id支付的预付款。此外,如果最大接收日期值为负值,则我需要将其从计算中删除 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 se

我有逻辑来计算收据金额和收据日期之和。我不确定下面的t-sql是否适合我的逻辑

我需要最大接收日期,并将选择任何接收日期,即2014年1月1日。这将为我提供为个人id支付的预付款。此外,如果最大接收日期值为负值,则我需要将其从计算中删除

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  

就我能解释你的问题而言,你正在寻找基于ID的SUMamt

 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

请重新表述这个问题。首先,SQL语句有错误,其次,不清楚您想要/需要什么结果。这里的问题是计算日期的收据金额,该日期也可以位于两个收据ID之间。即,20-07-2-13至2014年4月1日,我只需要找到这些接收日期的大致金额以及相应的金额。