私は連続した逓減基準で12の月次データを1つのテーブルに結合しようとしています。毎月のデータ結合では、減少するシーケンスが表示されます。しかし、私はこれを実行するために複数のマクロを開発するロジックを考え出すのに苦労しています。 月はYYYYMM形式です。テーブルYYYYMMMため複数のループを持つSQLシーケンシャル月マクロ
コード `
PROC SQL;
CREATE TABLE WANT_YYYYMM AS /* I want the tables on monthly but incremental sequence basis.
For e.g monthly data for 201612 will join with 201701,201702....201711....
monthly data for 201701 will join with 201702,201703....201711 and so on.*/
SELECT (COUNT(A.canc_accts)) AS canc_accts_n,
(COUNT(A.canc_accts)) AS canc_accts_n+1,
(COUNT(A.canc_accts)) AS canc_accts_n+2,
........
(COUNT(A.canc_accts)) AS canc_accts_n+11
FROM HAVEDATA_YYYYMM A
LEFT JOIN HAVE_DATA_YYYYMM+1 B ON (A.ACCT_NO= B.ACCT_NO)
LEFT JOIN HAVE_DATA_YYYYMM+2 C ON (A.ACCT_NO= B.ACCT_NO)
LEFT JOIN HAVE_DATA_YYYYMM+3 D ON (A.ACCT_NO= B.ACCT_NO)
........
LEFT JOIN HAVE_DATA_YYYYMM+11 G ON (A.ACCT_NO= B.ACCT_NO)
GROUP BY A.Fees;
QUIT;
` データは、月のマクロループとcanc_n変数を実行する上でいくつかの助けが必要この
canc_n canc_n+1 canc_n+2...... canc_n+10 canc_n+11
201612 200 225 250 325 350
201701 222 240 277 312 -
201702 210 232 234 -
.
.
201711 200 - -
のようになります。これを構築するために複数のマクロやロジックを構築する上での助けに感謝します。
なぜSQLでデータではないのですか? – Tom
なぜあなたは同じことを数えていますか? COUNT(B ....)、COUNT(C ....)か? – Tom
実際には、異なる* YYYYMM *接尾辞を持つ複数のデータセットがありますか?または、* YYYYMM *の1つのデータセットにフィールドがあります。後者の場合と同様に、SQLは宣言型言語であるため、テーブル名のような識別子の名前に関する論理を、含まれているフィールド内のデータだけで判断することはできません。 – Parfait