SELF JOINとCOUNTを使用すると、COUNTコマンドを使用すると異なる結果が表示される理由を誰かが説明できますか? 同じテーブルControlNo
の列。列の値はユニークではありません。 このクエリでは、合計カウントが15586
になります。SELF JOINでCOUNTを使用すると異なる結果の値が返される
select (Select COUNT(ControlNo)
from tblQuotes Q1
where Q1.ControlNo = a.ControlNo
) QuotedTotal
FROM tblQuotes a
inner join lstlines l on a.LineGUID = l.LineGUID
where l.LineName = 'EARTHQUAKE' AND YEAR(EffectiveDate) = 2016
しかし、私はこのクエリを実行した場合、その後、それは私に15095
の合計数を提供します。
select COUNT(ControlNo) as QuotedTotal
from tblQuotes a
inner join lstlines l on a.LineGUID = l.LineGUID
where l.LineName = 'EARTHQUAKE' AND YEAR(EffectiveDate) = 2016
正確に合計金額を変更し、その理由は何? なぜ最初のシナリオを使用するのですか? そして、最初のクエリを修正して、各行で分割することなく15586
の合計を得る方法はありますか? は、すべてではないそれらのは、その条件でlstlines
テーブルに対して参加するものの、フィールドControlNo
が一意でないと、その値を共有するいくつかのレコードがあるためと考えられるあなた
まず、テーブル構造を共有すると役立ちます。 'ControlNo'はユニークなフィールドですか? 'ControlNo'フィールドの値を共有する' tblQuotes'にはいくつかの行があるようですが、それらのすべてが 'lstlines'テーブルと結合するわけではありません。それらを数える必要がありますか? – Andrew
列 'ControlNo'は一意ではないため、結果が異なる可能性があります。 – Oleg