我有一个MS Access查询,其中显示以下数据。
我想编写一些SQL,该SQL在执行时显示以下结果。
我的规则如下,并且基于Field5。
如果Field5 <>'C'中的值,则任何其他值仅显示1行。
我开始玩弄子查询并使用First运算符,但是由于表中的所有其他值都是唯一的,因此仍然显示所有行。
这是我的错误尝试:
SELECT T.Field1, T.Field2, T.Field3, T.Field4, First(T.Field5) AS FirstOfField5
FROM Table1 as T
GROUP BY T.Field1, T.Field2, T.Field3, T.Field4
ORDER BY First(T.Field5);
任何帮助都会很棒。
如果我们假设field1
每一行都是唯一的,则可以执行以下操作:
SELECT T.Field1, T.Field2, T.Field3, T.Field4, T.Field5
FROM Table1 as T JOIN
(SELECT t.Field5, MIN(t.Field1) as Field1
FROM table1
GROUP BY t.Field5
) as tt
ON tt.Field1 = t.Field1 or t.Field5 = 'C';
如果您没有一行的唯一标识符,这将更加困难。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句