這是我的問題的簡化版本。使用連接檢索匹配行
我有表像下面
Id Name SNumber
100 XYZ 123
100 XYZ 123
101 ABC 123
103 QAZ 123
100 XYZ 971
100 XYZ 872
100 XYZ 659
102 PQR 145
102 PQR 707
103 QAZ 421
我想指望有Snumber爲 '123' 有Snumber即總列和行的行不爲 '123',即otherTotal列
Id Name Total OtherTotal
100 XYZ 2 3
101 ABC 1 0
102 PQR 0 2
103 QAZ 1 1
我在做什麼是使用連接
Select xx.*,otherTotal
From
(Select Id,Name,count(*) as Total
From table
Where Snumber like '123'
Group By id,name
)xx
Inner join
(Select Id,Name,count(*) as otherTotal
From table
Where Snumber not like '123'
Group By id,name
)yy
On xx.Id=yy.Id
但這隻會返回行,如果特定Id
既有Snumber
爲123
而不是123
返回的數據是像下面
Id Name Total OtherTotal
100 XYZ 2 3
103 QAZ 1 1
現在還沒有guarntee一個特定的ID將永遠有Snumber爲123,所以我不能使用左或右連接。如何解決這個泥潭? Giggity