我在一个名为#ClaimsTemp3的临时表中有五个字段: AMTPAY,YMDPAID,CARRIER,PAYTO,DIVISION_NBR,AMTPAY2和YMDPAID2
AMTPAY是一个负数。对于AMTPAY,YMDPAID,CARRIER,PAYTO和DIVISION_NBR的每个组合,有几行AMTPAY2和YMDPAID2:
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
对于特定的DIVISION_NBR和PAYTO组合,我需要报告AMTPAY2的总和何时达到AMTPAY中的数字(除了正数而不是负数)。因此,当AMTPAY2达到300为CARRIER 04和DIVISION 123456时,我需要显示该记录。其中的细微差别也可能不是完全匹配,例如(在上面的示例中),在20120204上有一个250的AMTPAY2。现在我想在查询中看到它,仅在那一周(YMDPAID2) ,当它达到或超过负余额时。
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
对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
您应该能够弄清楚如何使用这些作为子查询来找出差异的位置。如果您需要我澄清,请告诉我:
SELECT T1.YMDPAID FROM (subquery1) AS T1 INNER JOIN (subquery2) AS T2 WHERE T1.Total-T2.Total>0