请帮忙!!我是 SQL 编程的新手,并且正在自学一切。我终于遇到了一个我似乎无法解决的问题。希望有人可以提供帮助。我有以下表格。我需要做的是在 FROISEDI 中使用 RECDATE 并计算 WEI4CPP 之前并包括该日期的所有不同日期(I4C7DZ)。我使用了下面的代码,它似乎可以工作,直到我有一条具有相同 CACLAIM 值的记录。我也有两条记录具有相同 CACLAIM 和 DOI 的实例,因此我的代码也不起作用。不知何故,我需要使用 FROISEDI 的 AGCLAIM,但我不知道如何将其拉入我的计数表。哦,我使用的是 SAS,所以它不完全是 SQL,但非常接近。谢谢你的帮助!
TABLE: FROISEDI
AGCLAIM RECDATE CACLAIM DOI
09073589 1/29/09 09 41615 1/28/09
09115390 3/01/09 00012HR09 2/23/09
09234567 4/20/09 003140010 1/2/09
09154826 5/01/09 003140010 4/28/09
TABLE: WEI4CPP
I4C7DZ I4X6TX I4YWTX I4YFTX
1/28/09 1/28/09 09 41615
1/29/09 09073589 1/28/09 09 41615
1/30/09 09073589 1/28/09 09 41615
2/24/09 2/23/09 00012HR09
2/28/09 2/23/09 00012HR09
3/01/09 09115390 2/23/09 00012HR09
3/15/09 09115390 2/23/09 00012HR09
1/15/09 1/02/09 003140010
1/20/09 1/02/09 003140010
2/08/09 1/02/09 003140010
3/19/09 1/02/09 003140010
4/20/09 09234567 1/02/09 003140010
5/01/09 09154826 4/28/09 003140010
TABLE I NEED TO PRODUCE: COUNTS
AGCLAIM CACLAIM DOI SUBMITS
09073589 09 41615 1/28/09 2
09115390 00012HR09 2/23/09 3
09234567 003140010 1/02/09 5
09154826 003140010 4/28/09 1
我用过的代码:
PROC SQL;
CREATE TABLE COUNTS AS
SELECT I4YWTX AS DOI3,
I4YFTX AS CLMNUM2,
COUNT(DISTINCT I4C7DZ) AS SUBMITS
FROM WAREHOUS.WEI4CPP A
WHERE I4C7DZ<=(SELECT RECDATE
FROM FROISEDI
WHERE FROISEDI.CACLAIM=A.I4YFTX
AND FROISEDI.DOI=A.I4YWTX)
GROUP BY WEI4CPP.I4YFTX, WEI4CPP.I4YWTX;
QUIT;