COUNT 関数を使用して多数の結果を返す MS SQL に 2 つのクエリがあります。
最初のクエリを実行して最初の結果を取得し、次に別のクエリを実行して別の結果を取得し、それらを減算して結果を見つけることができます。ただし、3つの機能すべてを組み合わせて1つの全体的な結果を得る方法はありますか
次のように: sql1 を実行 sql2 を実行 SQL3 を実行 (sql1-sql2)?....
関数として xxxx を使用して試しましたが、うまくいきませんでした。
COUNT 関数を使用して多数の結果を返す MS SQL に 2 つのクエリがあります。
最初のクエリを実行して最初の結果を取得し、次に別のクエリを実行して別の結果を取得し、それらを減算して結果を見つけることができます。ただし、3つの機能すべてを組み合わせて1つの全体的な結果を得る方法はありますか
次のように: sql1 を実行 sql2 を実行 SQL3 を実行 (sql1-sql2)?....
関数として xxxx を使用して試しましたが、うまくいきませんでした。
そのためにサブクエリを使用できるはずです。
SELECT
(SELECT COUNT(*) FROM ... WHERE ...)
- (SELECT COUNT(*) FROM ... WHERE ...) AS Difference
ちょうどそれをテストしました:
Difference
-----------
45
(1 row(s) affected)
SELECT (SELECT COUNT(*) FROM t1) - (SELECT COUNT(*) FROM t2)
これが古い投稿であることは知っていますが、ここに私のニーズに最も適した別のソリューションがあります(firebirdでテスト済み)
SELECT c1-c2 from (select count(*) c1 from t1), (SELECT COUNT(*) c2 from t2);
クエリは次のようになります。
SELECT (select COUNT(FIRSTNAME) FROM TRMDW.EMPLOYEE1) - (SELECT COUNT(DISTINCT FIRSTNAME) FROM TRMDW.EMPLOYEE1) as difference from dual;
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 @result = (select count(0) from table1) - (select count(0) from table2)