これは、Table
& compoundedの行数のカウントを返しますが、できれば1つのselectステートメントでTable2
のカウントだけを返したいと思います。Table2
SELECT Table.Name, Count(Table2.Active) FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
提案?
これは、Table
& compoundedの行数のカウントを返しますが、できれば1つのselectステートメントでTable2
のカウントだけを返したいと思います。Table2
SELECT Table.Name, Count(Table2.Active) FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
提案?
最初のテーブルの行ごとに1回、2番目のテーブルからカウントを取得するのはなぜですか?これは非常に非効率的です。行う方がはるかに良い:
DECLARE @c INT;
SELECT @c = COUNT(*) FROM dbo.Table2;
SELECT Name, @c FROM dbo.Table;
いいえ、これは「単一ステートメント」の要件を満たしていませんが、なぜそれが優れた、または効率的なクエリの尺度であると考えるのか不思議です。
SELECT
句にクエリを記述します。
SELECT Table.Name, (SELECT Count(Active) FROM Table2)
FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
テーブルの「結合」を変更しませんでしたが、意味がありません。