在一列上选择唯一值,然后仍在多表上显示其他列

时间:2016-09-07 07:41:59

标签: sql oracle

我正在使用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

我想每个数据只显示一行,但是,我无法实现这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为,你的查询有误。您已使用列B.FIELD1计算最大值MAX(B.FIELD1),同时在GROUP BY部分中使用了此列。