我有这些表(在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