我有這些表(在SQL-Server 2008 R2中):SQL:聚合與空檢查後加入
表1:
Id Guid
1 {530D8FE1-7541-43CC-9F92-1AA776490155}
2 {CAC5B001-C8DE-46AA-A848-5D831633D0DF}
3 NULL
表2:
Id Column1 Table2FK
1 1 1
2 1 2
3 1 3
我想執行在Table2.Column1
上彙總的查詢,並將其與Table1
行一起加上最大ID,但包含Table1.Guid
的非空值。在這種情況下,它應該加入表1的第2行。寫成查詢我想是這樣的(雖然這不是有效的SQL):
select t2.Id, t2.Column1, t2.Table2FK, max(t1.Id), t1.Guid
from Table2 t2
join Table1 t1 on t2.Table2FK = t1.Id
where t1.Guid is not null
group by t2.Column1
我已經能夠做到在同一查詢無效檢查和總超過Table2.Id2
分開,但不能同時使用。在第一種情況下,連接返回2行,在第二種情況下,連接在Table1
的第3行上。
您還沒有指定在輸出結果集中您實際期望的列 – Aadith 2011-03-24 09:43:22
我在select子句中放入的那些(基本上全部是這些) – 2011-03-24 09:46:27
不是table2fk在table1中引用id的外鍵嗎?如果是的話,爲什麼你會希望他們兩個都列在結果中..我會建議思考一點問題,並細化你的問題陳述以獲得更好的迴應 – Aadith 2011-03-24 09:52:23