で競合しているレコードを持つ行を捨て、私は下に示すサンプルシナリオを思い付いた:SQL:より良い私の問題を説明するために1列
次は、顧客AとBザ・Open_Yearのための銀行口座履歴のリストですいくつかのアカウントが欠落しているか、他のレコードと競合しています。
例えば、A-3-UBアカウントリスト内の2つのレコードを持つ単一のアカウントを表し、ただし、2つの競合Open_Year 1990 & 2012を有します。アカウントA-1-BAには2つのレコードがあり、レコードの1つにOpen_Yearがありません。私が持っていると思いますがクエリを選択シングルている
Customer Account_id Bank_id Open_Year Gender
A 1 BA 2000 F
A 1 BA . F
A 2 UB . F
A 3 UB 1990 F
A 3 UB 2012 F
A 4 UB 2013 F
A 4 UB 2013 .
A 5 UB . F
B 1 WF 2014 M
B 1 WF 2014 .
B 6 WF . .
、それらのアカウント行方不明/ Open_Yearが完了破棄されます矛盾のいずれかで、すなわち、戻り結果は次のようになります。
Customer Account_id Bank_id Open_Year Gender
A 4 UB 2013 F
A 4 UB 2013 .
B 1 WF 2014 M
B 1 WF 2014 .
追加質問:
最後に別のレコードが追加されました。さらに、Gen DERは矛盾や不足している少なくとも1つの値、Open_Yearの場合と同じ要件です:
Customer Account_id Bank_id Open_Year Gender
A 1 BA 2000 F
A 1 BA . F
A 2 UB . F
A 3 UB 1990 F
A 3 UB 2012 F
A 4 UB 2013 F
A 4 UB 2013 .
A 5 UB . F
B 1 WF 2014 M
B 1 WF 2014 .
B 6 WF . .
C 7 WB 2015 F
予想される出力は次のようになります。
Customer Account_id Bank_id Open_Year Gender
C 7 WB 2015 F
返されるエラーは次のとおりです。サブクエリは複数の列を選択できません。 –
私はそれをoracle 11gと10xeでテストしました(10xeでいくつかのエイリアスを修正する必要があります)。サブクエリに関するエラーはありません。 –
もう一度テストしましたが、サンプルデータセットではうまく機能しました!もう1つ質問:1つのクエリで同時に2つの列(「Open_Year」、「Gender」)をフィルタリングすることは可能ですか? –