我有以下表table1是數據的樣子。自加入Oracle
列1是我的另一個表的外鍵。
Column1 Column2 Column3
1 A 06/MAY/14
1 A 05/MAY/14
1 B 06/MAY/14
1 B 01/JAN/00
1 A 01/JAN/00
現在我想找到不同的column1值,它滿足以下條件。
1.atleast一個記錄,其中列2應該是A和欄3應爲(SYSDATE - 1)
AND
2.atleast一個記錄,其中列2應該是B和欄3應爲(SYSDATE - 1 )
含義alteast一個A和B應該有自己的列3填充(SYSDATE - 1)
我已經寫了下面的查詢,請告訴我是不是做錯了什麼。
我也想知道如果我做加盟的正確方法。該表包含大約5萬條記錄,性能應該沒問題。
SELECT DISTINCT COLUMN1 FROM
TABLE1 A
JOIN
TABLE1 B ON (A.COLUMN1 = B.COLUMN1)
WHERE
((TRUNC(A.COLUMN3) - TRUNC(A.COLUMN3) = 0)
AND TRUNC(A.COLUMN3) = TRUNC(SYSDATE - 1)
AND TRUNC(B.COLUMN3) = TRUNC(SYSDATE - 1)
AND A.COLUMN2 = 'A'
AND B.COLUMN2 = 'B'
AND TO_CHAR(A.COLUMN3, 'DD-MON-YY') != '01-JAN-00'
AND TO_CHAR(B.COLUMN3, 'DD-MON-YY') != '01-JAN-00'
);
'AND B.column3 = SYSDATE - 1'是沒有必要的。 'A.column3 = SYSDATE - 1'應該注意這一點。 'A'和'B'是同一張桌子。 – Nivas
噢。非常感謝。忘記 – SriniV
謝謝,你還可以告訴我爲什麼當所有包含column3爲'01/JAN/00'的行時,下面的語句沒有返回行。在(由列1分區)作爲語句 從表1中選擇不同的列1,最大值(欄3),其中列1(1) – Freaky1