connect by 句を使用してクエリを作成しようとしていますが、それを処理できません。
一般的に私はテーブルを持っています:
CREATE TABLE "TESTOWA" (
"ACCOUNT" VARCHAR2(20 BYTE),
"PARENT" VARCHAR2(20 BYTE),
"PAYMENT" VARCHAR2(20 BYTE)
);
Insert into TESTOWA (ACCOUNT,PARENT,PAYMENT) values ('5436','5436','1');
Insert into TESTOWA (ACCOUNT,PARENT,PAYMENT) values ('4576','3457',null);
Insert into TESTOWA (ACCOUNT,PARENT,PAYMENT) values ('5763','5686','1');
Insert into TESTOWA (ACCOUNT,PARENT,PAYMENT) values ('5686','5686',null);
Insert into TESTOWA (ACCOUNT,PARENT,PAYMENT) values ('3457','5686',null);
そして今、私がやりたいのは、支払い列が入力されていないアカウントを見つけることです (親アカウントも) すべてのアカウントは、他のアカウント ID を示す親アカウント (親列) を持つことができます。例を示した方が簡単かもしれません:
ACCOUNTID | PARENT | PAYMENT
-----------------------------
5436 | 5436 | 1
4576 | 3457 | NULL
5763 | 5643 | 1
5686 | 5686 | 1
3457 | 5686 | NULL
最初のアカウントは問題ありません - 支払い欄が記入されています。2 番目は null であるため問題ありませんが、親アカウントがあることがわかります (3457 アカウント) を確認すると、支払い列は null ですが、親アカウント (5686) があり、最後に支払い列があります。いっぱい。したがって、select の上のシチュエーションでは何も表示されません。
ACCOUNTID | PARENT | PAYMENT
------------------------------
5436 | 5436 | 1
4576 | 3457 | NULL
5763 | 5643 | 1
5686 | 5686 | NULL
3457 | 5686 | NULL
5686
アカウント IDの横にある 1 つの変更のみが null であることがわかるため、正しい選択でアカウントが表示されるはずです。4576, 3457, 5686