我有一个与此类似的问题,但与 sql server 2k8r2 有更多的不同。数据库有 3 个表。站点、用户、users_sites。我需要从 users 表中获取电子邮件地址列表以及 2 列指示他们是哪些站点的成员。用户可以是 1、2 的成员,也可以是无成员(很可能是不活动的)。
这是我的脚本,但我不断为每封电子邮件获取 2 行,但我的目标是获取 3 列电子邮件,site1 成员为 1 或 site2 成员为 0,或者如果两者都有,则为 1,1,如果没有则为 0,0
+----------+-------+-------+
|emailAddy | site1 | site2 |
+------+-----------+-------+
|1@test.co | 0 | 1 |
|1@test.co | 1 | 0 |
|2@test.jp | 1 | 1 |
|2@test.jp | 1 | 1 |
+----------+-------+-------+
SELECT distinct emailaddress
,CASE WHEN cast(siteid AS varchar(max))= '1' THEN 1 ELSE 0 END AS site1
,CASE WHEN cast(siteid AS varchar(max))= '2' THEN 1 ELSE 0 END AS site2
FROM Users, Users_Sites
GROUP BY emailaddress,siteID
有什么帮助吗?谢谢。