30

COUNT 関数を使用して多数の結果を返す MS SQL に 2 つのクエリがあります。

最初のクエリを実行して最初の結果を取得し、次に別のクエリを実行して別の結果を取得し、それらを減算して結果を見つけることができます。ただし、3つの機能すべてを組み合わせて1つの全体的な結果を得る方法はありますか

次のように: sql1 を実行 sql2 を実行 SQL3 を実行 (sql1-sql2)?....

関数として xxxx を使用して試しましたが、うまくいきませんでした。

4

11 に答える 11

48

そのためにサブクエリを使用できるはずです。

SELECT
    (SELECT COUNT(*) FROM ... WHERE ...)
  - (SELECT COUNT(*) FROM ... WHERE ...) AS Difference

ちょうどそれをテストしました:

Difference
-----------
45

(1 row(s) affected)
于 2009-10-19T14:44:22.613 に答える
29
SELECT (SELECT COUNT(*) FROM t1) - (SELECT COUNT(*) FROM t2)
于 2009-10-19T14:46:30.747 に答える
4

これが古い投稿であることは知っていますが、ここに私のニーズに最も適した別のソリューションがあります(firebirdでテスト済み)

SELECT c1-c2 from (select count(*) c1 from t1), (SELECT COUNT(*) c2 from t2);
于 2016-12-09T08:12:04.120 に答える
2

クエリは次のようになります。

SELECT (select COUNT(FIRSTNAME) FROM TRMDW.EMPLOYEE1) - (SELECT COUNT(DISTINCT FIRSTNAME) FROM TRMDW.EMPLOYEE1) as difference from dual;
于 2018-10-03T13:42:59.927 に答える
1
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
于 2009-10-19T14:51:40.457 に答える
1

クエリ ロジックを使用してインライン関数を作成し、結果を返すだけです。必要に応じてパラメーターを渡します。

于 2009-10-19T14:44:51.770 に答える
1
select @result = (select count(0) from table1) - (select count(0) from table2)
于 2009-10-19T14:45:17.197 に答える