我有一个复杂的 SQL Server 查询,我试图敲掉它,碰壁,不确定最好/最快的方法。我有一个良好的开端,但并不顺利。
基本上,我需要创建一个 Select 语句,该语句将content_ids
满足以下要求:
- 唯一
content_id
与field_id
12680field_values
匹配的 content_id
其中field_id
12643 没有“是”,但另一行相同content_id
但field_id
12680 与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 匹配的“是”的第一次出现时迷失了方向。关于如何完成此或性能改进的任何建议?