Если вы просто хотите конкретныеref1
, вы можете использовать:
select header_key from yrs_table where ref1 = 42
Однако, я подозреваю, что вы после всех строк, которые разделяют значение ref1
. Если это так, то первый шаг, чтобы получить список всех ref1
значений, где есть более чем один:
select ref1 from yrs_order group by ref1 having count(*) > 1
Затем вы можете использовать это в качестве подзапроса, чтобы получить список всех строк:
select header_key, ref1 from yrs_order where ref1 in (
select ref1 from yrs_order group by ref1 having count(ref1) > 1
)
следующая запись показывает это в действии:
> CREATE TABLE PAX1 (HDR_KEY INT PRIMARY KEY NOT NULL, REF1 INT);
Table created.
> INSERT INTO PAX1 (HDR_KEY, REF1) VALUES
>> (0,0), (1,1), (2,1), (3,1), (4,1), (5,2), (6,2), (7,3), (8,4), (9,4);
10 rows inserted.
> SELECT * FROM PAX1 ORDER BY HDR_KEY ASC;
HDR_KEY REF1
======= ====
0 0
1 1
2 1
3 1
4 1
5 2
6 2
7 3
8 4
9 4
======= ====
10 rows fetched.
это показывает создание A го населения таблицы, в настоящее время для запроса с просьбой:
> SELECT REF1, HDR_KEY FROM PAX1 WHERE REF1 IN (
>> SELECT REF1 FROM PAX1 GROUP BY REF1 HAVING COUNT(*) > 1
>> ) ORDER BY REF1 ASC, HDR_KEY ASC;
REF1 HDR_KEY
==== =======
1 1
1 2
1 3
1 4
2 5
2 6
4 8
4 9
==== =======
8 rows fetched.
Вы можете там увидеть, что две строки с отсчетом одного, были исключены.
«выберите header_key, ref1 из yrs_order где ref1 in ( выберите ref1 из группы yrs_order по ref1, имеющему счет (ref1)> 1 )« это ват я искал ... извините за ответ позже .. был на офис..thnx много – 2FaceMan