ノックアウトしようとしている複雑な SQL Server クエリを取得し、壁にぶつかり、最善/最速の方法がわからない。スタートは良かったのですが、うまくいきませんでした。
content_ids
基本的に、次の要件を満たすリストを提供する Select ステートメントを作成する必要があります。
- 一致
content_id
するfield_id
12680 の一意のfield_values
content_id
field_id
「はい」を持たない 12643 のうち、同じであるが 12680 を持つ別の行は、content_id
「はい」の値とfield_id
同じに一致しますcontent_id
create_date
過去 24 時間以内のアイテムのみ
データベースは次のようになります。
content_id | field_id | field_value | create_date
_________________________________________________________________________________________
12 | 12680 | 210b1183c3718142594425ab9538376ebb7f1e0 | 2012-02-21 22:44:51.167
12 | 12643 | Yes | 2012-02-21 22:44:51.167
13 | 12680 | 210b1183c3718142594425ab9538376ebb7f1e0 | 2012-02-21 22:44:51.167
13 | 12643 | | 2012-02-21 22:44:51.167
これまでに得たものは次のとおりです。
SELECT DISTINCT Event1.content_id
FROM tblIVTextData AS Event1
JOIN tblIVTextData AS Event2
ON (Event1.content_id != Event2.content_id AND
Event1.field_value = Event2.field_value)
JOIN tblIVTextData AS Event3
ON(Event3.field_id = 12643 AND
Event3.field_value = 'Yes' AND
Event3.content_id = Event1.content_id)
WHERE Event1.field_id = 12680 AND
Event1.create_date > dateadd(hh, -300, getdate())
field_values が一致する「はい」の最初の出現を選択することに迷っています。これを達成する方法またはパフォーマンスの向上に関する提案はありますか?