次のクエリは、territoryid =200 のみを持つすべての releaseID を返します。
select rt.ReleaseId from ReleaseTerritory rt
group by rt.ReleaseId
having SUM(case when rt.TerritoryId=200 then 0 else 1 end)=0
上記のクエリの結果に値47033が存在するかどうかを確認するにはどうすればよいですか。どうもありがとう。
次のクエリは、territoryid =200 のみを持つすべての releaseID を返します。
select rt.ReleaseId from ReleaseTerritory rt
group by rt.ReleaseId
having SUM(case when rt.TerritoryId=200 then 0 else 1 end)=0
上記のクエリの結果に値47033が存在するかどうかを確認するにはどうすればよいですか。どうもありがとう。
返される結果を特定の に制限する where 句を追加しますReleaseId
。
select rt.ReleaseId from ReleaseTerritory rt
where rt.ReleaseId = 47033
group by rt.ReleaseId
having SUM(case when rt.TerritoryId=200 then 0 else 1 end)=0
yes or exists
(テストされていないコードの警告)のような値を受け取るには:
select case when count(rt.ReleaseId) = 0
then 'Doesnt Exist'
else 'Exists' end as exists
from ReleaseTerritory rt
where rt.ReleaseId = 47033
group by rt.ReleaseId
having SUM(case when rt.TerritoryId=200 then 0 else 1 end)=0
select ReleaseId from ReleaseTerritory
where ReleaseId = 47033
and TerritoryId=200
except
select ReleaseId from ReleaseTerritory
where ReleaseId = 47033
and TerritoryId <> 200