1

次のクエリは、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が存在するかどうかを確認するにはどうすればよいですか。どうもありがとう。

4

2 に答える 2

4

返される結果を特定の に制限する 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
于 2013-06-10T08:45:45.470 に答える
0
select ReleaseId from ReleaseTerritory
where ReleaseId = 47033
and TerritoryId=200
except
select ReleaseId from ReleaseTerritory 
where ReleaseId = 47033
and TerritoryId <> 200
于 2013-06-10T15:09:39.000 に答える