好的,试着让它变得有意义,看看我是否可以做到这一点。我有多个查询存储在SQL Server 2012中,我可以单独运行以获得实际结果。这些查询中的每一个都连接到多个表。我想要做的是将所有这些查询放在一个查询中,以便在一个主列表中获取计数。
所以举个例子。我有一个查询,查找没有电子邮件地址的所有记录。下一个查询将查找缺少设置字段中电话号码的所有记录。下一个查询查找缺少填充字段的记录。
每个查询都会返回结果,我可以一次运行一个。我想设置一个我可以运行的单个查询,以便在单个结果列表中对每个查询进行计数。
我开始做一个Union语句并将两个查询代码放入其中。结果如下:
NoEmail NoPhone
NULL 24486
74596 NULL
我希望这样看是这样的:
NoEmail NoPhone
74596 24486
关于如何做到这一点的任何想法?
我希望这是足够的信息,如果没有,请告诉我,我会让你更多。
感谢。
答案 0 :(得分:0)
你可以这样做:
设置(仅用于演示目的,因此您可以看到我正在使用的数据):
create table t1 (
id numeric,
email varchar(20)
);
insert into t1 values (1,'test@example.com');
insert into t1 (id) values (2);
insert into t1 (id) values (3);
create table t2 (
id numeric,
phone varchar(20)
);
insert into t2 values (1,'123-456-7890');
insert into t2 (id) values (2);
insert into t2 (id) values (3);
insert into t2 (id) values (4);
insert into t2 (id) values (5);
查询:
select
(select count(id) from t1 where email is null) as NoEmail,
(select count(id) from t2 where phone is null) as NoPhone;
结果:
NoEmail NoPhone
2 4
您可以根据需要在查询末尾添加任意数量的其他查询:
select
(select count(id) from t1 where email is null) as NoEmail,
(select count(id) from t2 where phone is null) as NoPhone,
(select ...) as anotherCol,
(select ...) as yetAnotherCol;