4
私のテーブル内のデータの要約ビューを計算しようとしていますが、クエリが機能する瞬間には、テーブルが結局10,000 +私も同じ日付でそれぞれをフィルタリングする必要がある、私は各カウントのwhereステートメントでこれを行うことができることを実現するが、これは非常に効率的ではありません。条件が同じ行の複数のカウント
また、最終的に最終的に計算するのは、選択するのではなくフィールドを操作する方が簡単です。
(SELECT COUNT (*) FROM Contracts WHERE contractWon = 1) Won,
(SELECT COUNT (*) FROM Contracts WHERE contractPassedToCS = 1) PassedtoCS,
(SELECT COUNT (*) FROM Contracts WHERE contractPassedToCS = 0) as OutstandingWithSales,
(SELECT COUNT (*) FROM Contracts WHERE contractIssued = 1) as ContractsIssued,
(SELECT COUNT (*) FROM Contracts WHERE contractReturned = 1) as ContractsReturned,
(CONVERT(decimal, (SELECT COUNT (*) FROM Contracts WHERE contractReturned = 1))/ CONVERT(decimal, (SELECT COUNT (*) FROM Contracts WHERE contractIssued = 1))) * 100 as '% Outstanding'
は、私はおそらくいくつかの必要な接合があることを理解が、私は少し混乱しています。
ありがとうございました。
ラップSUM(のそれらのそれぞれ)と私は、私は1 1あなたは(にコメントするかどう –
:-)それを+1ますコラムが1/0で表されるブール値であることを前提としています(これはOPが示していません)。 – Ronnis
@ロンニス:ありがとう、それを明確に – gbn