-2

EVE 静的ダンプと MS SQL Server Expressのデータを使用しています。

ダンプにはテーブル mapDenormalize が含まれており、solarSystemID および typeID という名前の列があり、どちらも int です (どちらもキーではありません)。typeID のさまざまな組み合わせで、複数回出現する solarSystemID の値を見つけようとしています。

私は次のようなクエリを持っています

-- all systems that have a plasma or temperate planet
select distinct D.solarSystemID, D.typeID from mapDenormalize D 
  join invTypes T on D.typeID = T.typeID 
    where T.typeName in ('Planet (Plasma)', 'Planet (Temperate)') 
    order by solarSystemID

これは、Plasma 惑星を持つ solarSystemID ごとに 1 行を返し、Temperate 惑星を持つそれぞれに対して 1 行を返します。これをサブクエリとして使用して、両方の種類の惑星を持つが、手ぶらで出てきた solarSystemIDs を見つける方法を見つけようとしています。

私は次のようなことをしようと考え始めました

select solarSystemID from ( the above query ) where count(solarSystemID) > 1

しかし、それは解析されません。正しいアプローチは何ですか?

4

2 に答える 2

0
select D.solarSystemID, count(D.solarSystemID) as counts
from mapDenormalize D 
     join invTypes T 
     on D.typeID = T.typeID 
where T.typeName in ('Planet (Plasma)', 'Planet (Temperate)')
group by D.solarSystemID
having count(D.solarSystemID) > 1;

The sqlfiddle

于 2013-10-07T17:52:24.630 に答える