我有服務檯數據庫(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。
我有服務檯數據庫(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。
嘗試此查詢:
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
謝謝你的幫助,但爲什麼我得到重複? – user470091
剛剛編輯修復重複 –
我跑你的查詢我得到了3518結果和每戈登的查詢我得到了10017.困惑哪一個是正確的:( – user470091
您可以用聚合查詢做到這一點:
select t.contactid
from ticket t
where t.contactid like '%AX%'
group by t.contactid
having max(opentime) < dateadd(month, -6, getdate());
如果您需要的聯繫人信息,那麼你可以使用join
,exists
,或in
獲取它從那張桌子。
我跑你的查詢我得到了10017結果和每Spencer查詢我得到了3518。 – user470091
@ user470091。 。 。我的第一個猜測是'ticket'具有不在「contacts」表中的聯繫人。 –
你試過做什麼?我認爲這可以通過在票據表上選擇where語句來完成。 – Sheldon
我試過戈登和斯賓塞的查詢,但是這兩個查詢都給了我不同的結果。不確定哪一個是正確的。 – user470091
然後您需要查看數據。讓所有在Gordon的查詢中不在Spencers中的人看看他們是否應該在那裏。我個人認爲戈登看上去很整潔,應該按照你的要求去做。 – Sheldon