我正在使用Oracle,我的主要目标是显示table b
(Field1)
列的唯一值,但我仍然需要显示其他表中的其他列。
/>
SELECT A.FIELD1, MAX(B.FIELD1) AS "UNIQUE", B.FIELD2, B.FIELD3, C.FIELD3, D.FIELD4
FROM A
INNER JOIN B ON B.FIELD4 = A.FIELD1
INNER JOIN C ON C.FIELD2 = B.FIELD1
INNER JOIN D ON D.FIELD3 = C.FIELD3
GROUP BY A.FIELD1, B.FIELD1, B.FIELD2, B.FIELD3, C.FIELD3, D.FIELD4
ORDER BY A.FIELD1, D.FIELD4 ASC
数据结构是
A
FIELD1 FIELD2 FIELD3 FIELD4
ABC DEF HIJ KLM
B
FIELD1 FIELD2 FIELD3 FIELD4
000 1X1 24D ABC
000 1X1 301 ABC
000 1X1 135 ABC
C
FIELD1 FIELD2 FIELD3 FIELD4
112 000 24D SFD
D
FIELD1 FIELD2 FIELD3 FIELD4
2RD VCB MNK GGG
我想每个数据只显示一行,但是,我无法实现这一点。有什么建议吗?
答案 0 :(得分:0)
我认为,你的查询有误。您已使用列B.FIELD1
计算最大值MAX(B.FIELD1)
,同时在GROUP BY
部分中使用了此列。