SQLServer2008で複数のテーブルの行をカウントする必要があります。これを行います。
select count(*) from (select * from tbl1 union all select * from tbl2)
しかし、)の近くで構文が正しくないというエラーが発生します。なんで?
PS。テーブルの実際の数は2を超える場合があります。
SQLServer2008で複数のテーブルの行をカウントする必要があります。これを行います。
select count(*) from (select * from tbl1 union all select * from tbl2)
しかし、)の近くで構文が正しくないというエラーが発生します。なんで?
PS。テーブルの実際の数は2を超える場合があります。
これを試して:
派生テーブルに名前を付ける必要があります
select count(*) from
(select * from tbl1 union all select * from tbl2)a
テーブルの列数が異なる場合は、この方法を試してください
SELECT count(*)
FROM (
SELECT NULL as columnName
FROM tbl1
UNION ALL
SELECT NULL
FROM tbl2
) T
私はあなたが条項のSELECT
中でエイリアスをとる必要があると思います:FROM
select count(*)
from
(
select * from tbl1
union all
select * from tbl2
) AS SUB
*
また、両方のテーブルtbl1
でが正確に同じ数の列を返すことを確認する必要がありtbl2
、それらのタイプが一致している必要があります。
カウントする前にユニオンをするのは好きではありません。これにより、SQLオプティマイザーはより多くの作業を行うことを選択できます。
AlexKの(削除された)ソリューションは問題ありません。次のこともできます。
select (select count(*) from tbl1) + (select count(*) from tbl2) as cnt