我在MS SQL中有两个查询,它们使用COUNT函数返回多个结果。两次sql查询之间的减法
我可以运行第一个查询并获得第一个结果,然后运行另一个来获得另一个结果,减去它们并查找结果;然而,有没有办法将所有3种功能,并获得1整体结果
如:运行SQL3(SQL1,SQL2)运行SQL1运行SQL2 ....
我想他们XXXX的功能但没有运气。
我在MS SQL中有两个查询,它们使用COUNT函数返回多个结果。两次sql查询之间的减法
我可以运行第一个查询并获得第一个结果,然后运行另一个来获得另一个结果,减去它们并查找结果;然而,有没有办法将所有3种功能,并获得1整体结果
如:运行SQL3(SQL1,SQL2)运行SQL1运行SQL2 ....
我想他们XXXX的功能但没有运气。
您应该能够使用子查询为:
SELECT
(SELECT COUNT(*) FROM ... WHERE ...)
- (SELECT COUNT(*) FROM ... WHERE ...) AS Difference
只是测试它:
Difference
-----------
45
(1 row(s) affected)
嗨,我试过这种方法,并且它在第4行给我错误1242(21000):子查询返回多于1行。有什么建议么? – 2016-02-09 21:54:34
是的。确保你只返回一行,否则你不能用它作为标量。这方面的错误信息相当明确。也许你应该检查你的问题和问题中提到的问题之间的区别。 – Joey 2016-02-09 22:03:34
我正在解决同样的问题,这是我的查询:选择 (从车站选择计数(城市)) - (从车站组选择城市)作为区别 – 2016-02-09 22:23:17
只需创建您的查询逻辑内联函数,并将其返回结果。根据需要传入参数。
select @result = (select count(0) from table1) - (select count(0) from table2)
SELECT (SELECT COUNT(*) FROM t1) - (SELECT COUNT(*) FROM t2)
感谢这解决了它:)...最简单的事情...啊有时 – andreas 2009-10-19 14:54:14
谢谢!它非常简单,但是网络上的所有人都建议使用奢侈的SQL逻辑来获得它,只要简单的减去就足够了。 – Siddhartha 2015-04-22 17:53:19
SELECT
t1.HowManyInTable1
,t2.HowManyInTable2
,t1.HowManyInTable1 = t2.HowManyInTable2 Table1_minus_Table2
from (select count(*) HowManyInTable1 from Table1) t1
cross join (select count(*) HowManyInTable2 from Table2) t2
我知道这是一个老的文章,但这里是最为合适我的需要另一种解决方案(上火鸟测试)
SELECT c1-c2 from (select count(*) c1 from t1), (SELECT COUNT(*) c2 from t2);
((SELECT SUBSTRING_INDEX(SUBSTRING_INDEX( (选择COUNT(id)FROM t AS tr tr WHERE tr.m_id = t.m_id) )AS(m,'/',2),'/', - 1)FROM ms WHERE ms.id = t.m_id)剩余
告诉我们更多关于表格结构和你想获得什么数据的信息。也许查询可以重新编写,只选择一个quesry来选择你想要的。 – 2009-10-19 14:44:05