助けてください!!私は SQL プログラミングの初心者であり、すべてを独学で学んでいます。私はついに取り組むことができないように見える問題に遭遇しました。うまくいけば、誰かが助けてくれるでしょう。次のテーブルがあります。私がする必要があるのは、FROISEDI で RECDATE を使用し、WEI4CPP でその日付より前のすべての個別の日付 (I4C7DZ) をカウントすることです。以下のコードを使用しましたが、同じ CACLAIM 値を持つレコードが作成されるまでは機能しているようです。また、2 つのレコードの 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;