我試圖在ORACLE上插入兩個表(示例數據)的MINUS值。我可以插入所有的行,但我不能讓它與缺少在其他表中的行工作:使用MINUS子查詢的結果插入表中
樣本數據:
SALES TABLE SALES2 TABLE S_DETAILS TABLE
=================== =================== ==================
ID_SALE|DATE_SALE ID_SALE|DATE_SALE ID_SALE|SALE_DETAILS
100 |12/12/2010 100 |12/12/2010 100 |SHIPPED
101 |5/10/2011 101 |5/10/2011 101 |WAITING
102 |10/9/2012 102 |SHIPPED
103 |5/10/2011 103 |PROCESSING
我的代碼:
INSERT INTO SALES_RESUME(ID_SALE,DATE_SALE,TOTAL_SALE,SALE_DETAILS)
SELECT A.ID_SALE,A.DATE_SALE,B.TOTAL_SALE,B.SALE_DETAILS
FROM SALES A
JOIN S_DETAILS B ON A.ID_SALE = B.ID_SALE
WHERE A.ID_SALE IN (SELECT ID_SALE FROM SALES
MINUS
SELECT ID_SALE FROM SALES2);
我希望在ID_SALE位於生成的MINUS子查詢中時插入行到SALES_RESUME中,插入:
SALES_RESUME
==============================
ID_SALE|DATE_SALE|SALE_DETAILS
102 |10/9/2012|SHIPPED
103 |5/10/2011|PROCESSING
在此先感謝
您的查詢就會出現你想要做什麼。什麼是問題? –
a查看'10/9/1012'的銷售日期的日期,是否被誤認爲? –
好吧,無論你在Oracle中出現了一個可怕但非常明顯的錯誤(可能,但不太可能),或者這裏有一些不像你期望的那樣。讓我們一步一個腳印吧。首先,如果執行'SELECT ID_SALE FROM SALES MINUS SELECT ID_SALE FROM SALES2',將返回多少行?其次,如果執行'SELECT A.ID_SALE,A.DATE_SALE,B.TOTAL_SALE,B.SALE_DETAILS FROM SALES A JOIN S_DETAILS B ON A.ID_SALE = B.ID_SALE',返回多少行? –