我写了一个非常难看的SQL查询,老实说,我很尴尬地把它贴在这里……但是我需要一些关于4个相同的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个连接的大选择)
WHERE t.Time=4) AS t2
LEFT JOIN
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM(这里有3个连接的大选择)
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个连接的大选择)
WHERE t.Time=3) AS t1
LEFT JOIN
(SELECT t.ID, t.SubID, t.Time, t.Value, t.value2, t.value
FROM(这里有3个连接的大选择)
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按Id排序,EntryNo;
发布于 2012-04-03 17:50:55
应该可以将其简化为如下所示:
SELECT t1.ID, t1.SubID, t1.Time, t1.Value, t1.value2, t1.value FROM(带有3个连接的巨型选择) t1
LEFT JOIN (带有3个连接的巨型选择) t2
ON ( t2.Id = t1.Id AND t1.Time <> t2.Time and T2.Time in (3,4) )
WHERE T1.Time in (3,4) and
(t2.value<>t1.value OR t2.value2<>t1.value2 OR t2.Id Is Null)https://stackoverflow.com/questions/9990639
复制相似问题