サブクエリで複合条件を使用しようとしましたが、期待どおりの結果が返されませんでした。以下の例を調べて、クエリがうまくいかない理由を確認できますか?
Table : 1
EntityID StartDate EndDate
121 2013-08-01 2013-08-31
122 2013-08-01 2013-08-31
123 2013-08-01 2013-08-31
Table : 2
EntityID AttributeID AttributeValue
121 41 304
122 41 304
123 41 304
123 54 307
今、次のクエリを使用して、Table-2 の AttributeID と AttribueValue および table1 の Stardate と enddate に基づいてフェッチしようとしています。(例: 41 と 304 と 54 と 307 は 123 だけで満足しました。その 123 を 1 つのレコードだけ取得したい)
SELECT pe.EntityID
FROM table1 pe
WHERE pe.StartDate = '2013-08-01'
AND pe.EndDate = '2013-08-31'
AND pe.EntityID IN (SELECT peaiv.EntityID
FROM table2 peaiv
WHERE peaiv.AttributeID IN (41)
AND peaiv.[Value] IN (304)
AND peaiv.EntityID IN (SELECT peaiv.EntityID
FROM
PT_EntityAttributesIntValues
peaiv
WHERE peaiv.AttributeID IN (54)
AND peaiv.[Value] IN (307))
EntitID
--------
121
122
123
上記の結果を返すクエリですが、結果は123のみと予想されます。誰でもこれを試すことができますか。