2017-10-12 53 views
0

我有服務檯數據庫(SQL Server 2008中)和兩個表:CONTACT_ID誰沒有尋求幫助,因爲過去6個月申請,誰擁有「AX」,在他CONTACT_ID

聯繫人: CONTACT_ID,Contact_FullName

票: TICKET_ID,標題,OPEN_TIME,CONTACT_ID

我找人(CONTACT_ID)誰擁有不自去年請求援助 6個月和誰有「AX」在他的contact_ID

+0

你試過做什麼?我認爲這可以通過在票據表上選擇where語句來完成。 – Sheldon

+0

我試過戈登和斯賓塞的查詢,但是這兩個查詢都給了我不同的結果。不確定哪一個是正確的。 – user470091

+0

然後您需要查看數據。讓所有在Gordon的查詢中不在Spencers中的人看看他們是否應該在那裏。我個人認爲戈登看上去很整潔,應該按照你的要求去做。 – Sheldon

回答

0

嘗試此查詢:

SELECT contact_id, contact_name 
FROM contact 
WHERE contact_id LIKE '%AX%' 
AND contact_id NOT IN 
(
SELECT DISTINCT contact_id 
FROM ticket 
WHERE open_time >= DATEADD(month, -6, GETDATE()) 
) 
GROUP BY contact_id, contact_name 
+0

謝謝你的幫助,但爲什麼我得到重複? – user470091

+0

剛剛編輯修復重複 –

+0

我跑你的查詢我得到了3518結果和每戈登的查詢我得到了10017.困惑哪一個是正確的:( – user470091

1

您可以用聚合查詢做到這一點:

select t.contactid 
from ticket t 
where t.contactid like '%AX%' 
group by t.contactid 
having max(opentime) < dateadd(month, -6, getdate()); 

如果您需要的聯繫人信息,那麼你可以使用joinexists,或in獲取它從那張桌子。

+0

我跑你的查詢我得到了10017結果和每Spencer查詢我得到了3518。 – user470091

+0

@ user470091。 。 。我的第一個猜測是'ticket'具有不在「contacts」表中的聯繫人。 –