2013-06-23 156 views
0

我有四個我想要加入的表,並將所有輸出一起顯示。我不確定Oracle SQL Developer的語法是如何工作的。我知道對於程序員來說這是一個簡單的問題,我希望有人能夠就代碼的外觀提出建議。Oracle SQL Developer中的SQL查詢

的表是表是:JNL1 JNL2 JNL3 JNL4

JNL1 
JNL2 
JNL3 
JNL4 

我只想顯示與用戶代碼=自動化和日期的結果,是當前的前一天。代碼爲:

UserCode = 'Automation' AND  
    CONVERT(VARCHAR,LEFT(DATE,8))=CONVERT(VARCHAR(8),GETDATE()-1,112) 

所有這四個表之間共有的鍵是ItemID,Date和UserCode。

我不確定查詢的樣子,我可以生成連接表查詢和UserCode/Date查詢作爲單獨的查詢。但是,當我將它們組合成一個查詢時,我會在模糊列名稱上出現錯誤,或者查詢運行時數據庫中沒有顯示任何數據。

+0

您能否提供樣本數據,預期結果以及您嘗試過的代碼?另外,該查詢標記爲「oracle」,但它在示例中使用了SQL Server語法。 –

回答

2

請勿參加表格。 根據您的需要擺脫只有一張桌子和表結構的數據是相同的,那麼你可以有多個unions

- 在Oracle數據庫中,你不能有列名日期,我假設date列名是c_date -

select ItemID, c_Date, and UserCode 
from Jul1 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul2 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul3 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul4 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 

* sysdate是系統的功能將隨着時間值返回當前的日期。

+0

如果我想要每個表中的所有列,而不僅僅是ItemID,c_Date和UserCode,代碼將如何? –

+0

@KJ ..請告訴..你如何要求所有表中的所有列? 作爲您的表名顯示這些表存儲了相應日期的數據..並且您只想獲取昨天的數據..在這種情況下,您將如何從其他三個表中獲取數據? –