【发布时间】:2012-04-03 09:34:53
【问题描述】:
我写了一个非常丑陋的 SQL 查询,老实说我很尴尬在这里发布它......但我需要一些关于 4 个相同的 SELECT 语句的帮助。有没有更好的方法可以在不创建该表的情况下执行此操作?
我不确定巨大的 SELECT 的内容是否与回答这个问题有关。如果是这样,我会尝试提出该查询。 (但由于我高度简化了整个示例,这可能很难做到)。
非常感谢任何帮助。
(这个问题是我在这里提出的另一个问题的后续问题:Comparing "Consecutive" Rows in Ms Access)
SELECT t2.* FROM
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM
( 巨大的选择在这里有 3 个连接)t
WHERE t.Time=4) AS t2
LEFT JOIN
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM
( 巨大的选择在这里有 3 个连接)t
WHERE t.Time=3) AS t1
ON t2.Id = t1.Id
WHERE t2.value<>t1.value
OR t2.value2<>t1.value2
OR t1.Id Is Null
联合所有
SELECT t1.* FROM
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM
( 巨大的选择在这里有 3 个连接)t
WHERE t.Time=3) AS t1
LEFT JOIN
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM
( 巨大的选择在这里有 3 个连接)t
WHERE t.Time=4) AS t2
ON t1.Id=t2.Id
WHERE t1.value<>t2.value
OR t1.value2<>t2.value2
OR t2.Id Is Null
ORDER BY Id, EntryNo;
【问题讨论】:
标签: sql