Здравствуйте! Есть таблица MSEG следующего вида, где MBLNR – часть составного ключа, а BWART – простое поле:
+--------+-------+
| MBLNR | BWART |
+--------+-------+
| 000001 | 531 |
| 000001 | 561 |
| 000001 | 591 |
| 000002 | 531 |
| 000002 | 591 |
+--------+-------+
Необходимо выбрать все MBLNR, для которых поле BWART принимает значения 531, 561 и 591 – обязательно все три.
Таким образом, 000001 должен попасть в результат, а 000002 – не должен (нет BWART = 561).
Для этого я написал следующий код:
SELECT A.MBLNR
FROM MSEG A
, MSEG B
, MSEG C
WHERE
A.MBLNR = B.MBLNR AND
A.MBLNR = C.MBLNR AND
A.BWART = '531' AND
B.BWART = '561' AND
C.BWART = '591'
AND ROWNUM <= 10
Принесёт ли мне это желаемый результат? Может быть, есть способ лучше?