我在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