私は正しい結果を得るために正しいクエリを作成しようとしていましたが、時間が経ってもまだ運がありません。私は同じIDでステータスが異なる複数行データセットからのOracle 8iの選択クエリ
は、例えば、このスクリーンショットを見てみましょう...私は近いですが、私はトリックを使い果たした感じ:
強調されたデータセットは、私が探しているものです。だから私は多くのSAMPLE_IDを持っているが、私はすべての行のステータスを 'S'にしたい。強調表示されていないデータセットには 'S'を含むミックスステータスがあります。今私の問題は、私はまだそれらのものを取得...ここ
は私のクエリです:
SELECT T3.SAMPLE_ID FROM
LIMSFD_SAMPLE_INFO T3
WHERE T3.SAMPLE_ID IN
(SELECT SAMPLE_ID FROM LIMS_FINAL_RESULT WHERE SECTION_ID = 'FD' AND STATUS = 'S')
AND T3.SAMPLE_ID NOT IN
(SELECT SAMPLE_ID FROM LIMS_FINAL_RESULT WHERE SECTION_ID = 'FD' AND STATUS != 'S')
だから、最初のサブクエリは「S」の状態と第2のサブクエリが取得して結果を取得します「S」のステータス以外の結果と「IN」と「NOT IN」を使用して、私はそれが望ましくない結果を除外すると考えました。
これはOracle 8iであるため、紹介するサブクエリが多いほど、それは遅くなります。私はここでこれを試して、エクスプローラをクラッシュしました:
SELECT T3.SAMPLE_ID FROM
LIMSFD_SAMPLE_INFO T3,
LIMSFD_SAMPLE_INFO T4
WHERE T3.SAMPLE_ID IN
(SELECT SAMPLE_ID FROM LIMS_FINAL_RESULT WHERE SECTION_ID = 'FD' AND STATUS = 'S')
AND T4.SAMPLE_ID NOT IN
(SELECT SAMPLE_ID FROM LIMS_FINAL_RESULT WHERE SECTION_ID = 'FD' AND STATUS != 'S')
AND T3.SAMPLE_ID <> T4.SAMPLE_ID
誰かがこの問題についていくつかの方向に私を指摘できますか? 上記の画像から、強調表示された行だけを取得し、他のものは取得しないようにしてください...私のクエリでは、両方を取得します。
多くの感謝!
@halfer - Haha!申し訳ありませんが、私は叫んでいませんでしたが、おそらくこのDBの不満からはずです。私はすべてをMariaDBに移行していると付け加えておくべきですが、それは時間がかかります... – M5er
Oracle 8i - 真剣に? –
@WernfriedDomscheit - 役に立つ答えがありますか? Lol – M5er