2014-11-16 107 views
0

我有2個表,你可以看到我在下面提到CaseID與主鍵和外鍵有關,所以我想要結果的動作是1,而在第二個表中的隊列不等於到7,但我的結果是給我2條記錄,根據我的條件記錄應該是一個,它返回的只是CaseID 3.所以你可以請我的查詢中的錯誤。在SQL Server中使用連接查詢得到結果

CaseID action 
    1  1 
    2  0 
    3  1 
    4  0 

Cid CaseID Queue 
1 1  1 
2 1  2 
3 1  7 
4 3  1 
5 3  2 
6 4  3 
7 4  6 
8 2  4 
9 2  5 

查詢:

select 
    CaseTblA.CaseID 
from 
    CaseTblA 
inner join 
    CaseTblB on CaseTblA.CaseID = CaseTblB.CaseID 
where 
    CaseTblA.Action = 1 and CaseTblB.Queue <> 7 
group by 
    CaseTblA.CaseID 

該查詢將返回:

CaseID 
1 
3 

,但它應該是回報:

CaseID 
3 
+1

你有兩場比賽符合你的條件'(1,1,1), (2,1,2)' – bummi

回答

1

試試這個:

SELECT  CaseTblA.CaseID 
FROM   CaseTblB INNER JOIN 
         CaseTblA ON CaseTblB.CaseID = CaseTblA.CaseID 
    INNER JOIN 
         (select CaseID, MAX(Queue) as maxqueue 
         from CaseTblB 
         group by CaseID 
         Having MAX(Queue) <> 7) a on 
         a.CaseID = CaseTblA.CaseID 
where CaseTblA.Action = 1 
GROUP BY CaseTblA.CaseID