2015-11-05 117 views
0

我想用2個其他查詢來形成一個查詢,但我不知道我該怎麼做。我正在使用Oracle SQL。這是基本的邏輯:Oracle SQL加入2個查詢

如果(select supervisor_id from PS_EMPLOYEES where EMPLID = %This.sEMPLID)

(select EMPLID from sysadm.PS_Z_RPT_TO_REL where Z_DIRECT_RPT = 'D' where manager_id = %EmployeeID) 

返回true,否則返回False。

基本上,第一個查詢將有一個ID,並將通過從第二個查詢形成的列表進行搜索。如果來自第一個查詢的ID位於第二個查詢的列表中,則返回'True'否則返回'False'是否有任何想法?

+1

SQL查詢返回的行和列,而不是標量表達式。你能更清楚你想做什麼嗎?樣本數據和期望的結果是一個很大的幫助。 –

+0

第一個查詢提供了一個ID。第二個查詢提供了一個ID列表。如果第一個查詢中的ID位於第二個查詢的列表中,我想提供「True」值。如果來自第一個查詢的ID不在第二個查詢中,我想提供值「False」 – user3586248

回答

1

像下面這樣或許(未經測試):

SELECT EXISTS (
    SELECT supervisor_id 
    FROM PS_EMPLOYEES 
    WHERE EMPLID = %This.sEMPLID 
    AND supervisor_id IN (
    SELECT EMPLID 
    FROM sysadm.PS_Z_RPT_TO_REL 
    WHERE Z_DIRECT_RPT = 'D' 
    AND manager_id LIKE %EmployeeID 
) 
) 
+0

,這很接近......我認爲它需要更類似於以下內容:SELECT * from( SELECT supervisor_id FROM PS_EMPLOYEES WHERE EMPLID =%This.sEMPLID 和supervisor_id IN(SELECT EMPLID FROM sysadm.PS_Z_RPT_TO_REL WHERE Z_DIRECT_RPT = 'd' 和MANAGER_ID LIKE%僱員 ) ) – user3586248

+0

我想你可能會後迴應了原帖我已經糾正了它? (我沒有看到你的評論和我有什麼不同之處?) –