SQL求和,直到一列等于或大于另一列
我在名为#ClaimsTemp3的临时表中有五个字段: AMTPAY、YMDPAID、CARRIER、PAYTO、DIVISION_NBR、AMTPAY2和YMDPAID 2 AMTPAY是一个负数。对于AMTPAY、YMDPAID、CARRIER、PAYTO和DIVISION_NBR的每个组合,有几行AMTPAY2和YMDPAID2:SQL求和,直到一列等于或大于另一列,sql,sql-server,Sql,Sql Server,我在名为#ClaimsTemp3的临时表中有五个字段: AMTPAY、YMDPAID、CARRIER、PAYTO、DIVISION_NBR、AMTPAY2和YMDPAID 2 AMTPAY是一个负数。对于AMTPAY、YMDPAID、CARRIER、PAYTO和DIVISION_NBR的每个组合,有几行AMTPAY2和YMDPAID2: AMTPAY YMDPAID CARRIER PAYTO DIVISION AMTPAY2 YMDPAID2 -300 20120101
AMTPAY YMDPAID CARRIER PAYTO DIVISION AMTPAY2 YMDPAID2
-300 20120101 04 O900 123456 50 20120201
-300 20120101 04 O900 123456 25 20120202
-300 20120101 04 O900 123456 10 20120203
我需要报告特定部门NBR和PAYTO组合的AMTPAY2之和何时达到AMTPAY中的数字(除了正值而不是负值)。所以当04号航母和123456分部的AMTPAY2达到300时,我需要显示该记录。这其中的细微差别还在于,它可能不完全匹配,例如(在上面的示例中),在20120204年,AMTPAY2为250。现在我想在查询中看到它,就在它达到或超过负余额的那一周(YMDPAID2)
非常感谢您的帮助。谢谢 在AMTPAY和AMTPAY2字段中尝试类似的操作:
SELECT SUM(TBLB.AMTPAY) AS Total,TBLB.YMDPAID FROM #ClaimsTemp3 AS TBLA
INNER JOIN #ClaimsTemp3 AS TBLB ON (TBLA.YMDPAID=TBLB.YMDPAID)
WHERE TBLA.YMDPAID<=TBLB.YMDPAID
对不起,我还没有完全听懂。您能更具体一点吗?因此,获取顶部查询并将其插入子查询1,然后将其修改为AMTPAY2,并将其插入子查询2。这将为您提供符合您条件的行的YMDPAID。
SELECT T1.YMDPAID FROM (subquery1) AS T1 INNER JOIN (subquery2) AS T2 WHERE T1.Total-T2.Total>0