Encrypted または Denied が特定の列に表示される回数を数えようとしています。以下のコードは問題なくそれを返します
use DEW
SELECT Count (distinct DeviceData.machinename) As [Number Of Devices],
DeviceData.CurrentSite, DeviceData.Country
,sum(case buildstatus when 'encrypted' then 1 else 0 end) encrypted
,sum(case buildstatus when 'Denied' then 1 else 0 end) Denied
FROM dbo.DeviceData
where currentsite = 'REN'
group by DeviceData.Country, CurrentSite
出力は次のようになります。
Number of Devices SiteCode Country Encrypted Denied
3 REN Greece 0 3
ただし、内部結合を追加すると
FROM dbo.DeviceData JOIN dbo.SiteList ON dbo.DeviceData.country = dbo.SiteList.Country
拒否された変更の数が 33 に。
SQLがこれを行う理由は何ですか?