我得到了一張表,其中包含用戶列表,用戶列表編號(1,2,3 ...)以及包含在該特定列表中的寶藏號。如何使用屬性找出表B中的所有記錄是否存在於表B中?
我得到另一個表「尋找」(Treasure和用戶之間的連接表),其中存儲了尋寶(F-FOUND,NF-未找到,NM-需要維護)字段的狀態是:User_name,Treasure_NO,狀態。
我試圖找到他們在表格中找到的所有寶物的人(寶藏_不是表格寶藏的fk)「尋找」 (找到的條件被定義爲F OR NM) 。 而且,他們有2名或以上不同列表(可以由每個用戶列表的數量被隔離)
我的代碼現在是這樣的:
SELECT LF.user_detail_Name
FROM(SELECT LC.user_name_detail AS NAME,LC.tressure_No AS T_NO,LC.num_Of_List_User AS LIST_NO
FROM dbo.tblListContains AS LC) AS LIST INNER JOIN dbo.tblLookingFor AS LF
ON LIST.NAME = LF.user_detail_Name
WHERE LIST.NAME NOT IN(SELECT LIST3.user_name_detail
FROM(SELECT LC.user_name_detail,LC.tressure_No
From dbo.tblListContains as LC
EXCEPT
SELECT LF.user_detail_Name,LF.tressure_No
FROM dbo.tblLookingFor AS LF)AS LIST3)
AND LIST.NAME IN (SELECT LIST4.user_name_detail
FROM(SELECT LC.user_name_detail,LC.tressure_No
From dbo.tblListContains as LC
INTERSECT
SELECT LF.user_detail_Name,LF.tressure_No
FROM dbo.tblLookingFor AS LF
WHERE LF.Status_finding = 'F' OR
LF.Status_finding = 'NM')AS LIST4)
GROUP BY LF.user_detail_Name
HAVING (COUNT(DISTINCT LIST.LIST_NO))>=2
我的問題是,我無法作出確定每個被添加到他的列表中的人都被他發現了,如果我能把這個小組隔離開來,並且問我現在是否正在查看他的記錄(在ListContains表中)的人是我已經完成的。
的我想要什麼例子:
ON TblListContains有以下條目:
AAA(LIST用戶),1(LIST用戶數),1(TREASURE_NO)
AAA,2,2-
AAA,1,3-
BBB,1,2-
ON TblLookingFor有以下條目:
1(寶藏號),AAA(用戶名),F(狀態),測試(評論),07/08/2016(日期),2(隱藏等級由用戶),3(地形的電平)
2,AAA,NM,testing2,07/08/2016,2,4
3,AAA,F,testing3,07/08/2016,2 ,4
2,BBB,NF,testing4,07/08/2016,2,4
我只想返回AAA(因爲他有至少2所列出並發現所有的寶藏在他名單)
我也會添加表方案爲您提供便利:
有什麼建議?
感謝, 湯姆
請編輯您的問題,並提供樣品數據和預期結果。寶物,用戶,名單。 。 。沒有看到數據就會變得混亂。 –
只是增加了你的要求。 – Tom
如果您使用兩個表的示例:T1&T2和屬性「A」,這可能會有所幫助。比你的問題會更短,更多的人會幫助你。 –