Sql 将多个查询合并为1个查询执行计数

Sql 将多个查询合并为1个查询执行计数,sql,sql-server-2012,union,Sql,Sql Server 2012,Union,好吧,试着让这有意义,看看我能不能做到。我在SQL Server 2012中存储了多个查询,可以单独运行以获得实际结果。每个查询都连接到多个表。我想做的是将所有这些查询放在一个查询中,以获得一个主列表中的计数 比如说。我有一个查询,查找所有没有电子邮件地址的记录。下一个查询将查找集合字段中缺少电话号码的所有记录。下一个查询查找缺少填充字段的记录 每个查询都会返回结果,我可以一次运行一个查询。我想为自己设置一个可以运行的查询,以便在单个结果列表中为每个查询提供计数 我开始做一个Union语句,并将

好吧,试着让这有意义,看看我能不能做到。我在SQL Server 2012中存储了多个查询,可以单独运行以获得实际结果。每个查询都连接到多个表。我想做的是将所有这些查询放在一个查询中,以获得一个主列表中的计数

比如说。我有一个查询,查找所有没有电子邮件地址的记录。下一个查询将查找集合字段中缺少电话号码的所有记录。下一个查询查找缺少填充字段的记录

每个查询都会返回结果,我可以一次运行一个查询。我想为自己设置一个可以运行的查询,以便在单个结果列表中为每个查询提供计数

我开始做一个Union语句,并将两个查询代码放入其中。结果如下:

NoEmail   NoPhone
NULL      24486
74596     NULL
我希望它看起来像这样:

NoEmail     NoPhone
74596       24486
有什么办法吗

我希望这是足够的信息,如果没有,让我知道,我会给你更多


谢谢。

您可以这样做:

NoEmail   NoPhone
NULL      24486
74596     NULL
设置(仅用于演示目的,以便您可以查看我使用的数据):

查询:

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;

好的,这段代码基本上获取了一个表中已有的数据,并将其移动到一个新表中进行计数,然后合并表。如果我错了,请纠正我。我在表中有数据,在存储视图中有数据。我想在一个视图中运行所有查询,我可以设置为每天给我发一次电子邮件。我可以处理多行的格式设置,但如果可以的话,我希望所有行都在一行上。@Jayson,不,您只需要运行查询。我显示一些设置,只是为了显示我使用的数据。没有创建任何表。这只是一个使用子查询的select语句。啊,好吧,我错了。谢谢你的澄清。让我试试看会发生什么。谢谢你的信息