# Nur relevante Nummern ausgeben

**URL:** <https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098>\
**Category:** Andere Datenbanken\
**Created:** [13. April 2010 um 13:32 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098 "2010-04-13T13:32:50Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![desk.top](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/d/57b2e6/32.png) [@desk.top](https://www.pg-forum.de/u/desk.top)\
**Post date:** [13. April 2010 um 13:32 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/1 "2010-04-13T13:32:50Z")

</div>

Hallo, ich habe ein Problem. Seit zwei Stunden tüftel ich rum und komm zu keinem Ergebnis. Ich brauche eine Oracle-Abfrage für folgendes Problem.  
Ich habe eine Tabelle, in der es zu einer INVOICE\_NO mehrere Versionen (SEQUENCE\_NO) geben kann. Ich will mir nun alle INVOICE\_NO anzeigen lassen, für die es in keiner ihrer Versionen einen Eintrag ‘P%’ im Feld USER\_INITIAL gibt. Wie mache ich sowas?

Hier eine Beispieltabelle:  
**INVOICE\_NO**** SEQUENCE\_NO ****USER\_INITIAL** 96140431BOSS96140432BOSS96140433AUTOROUT96141901AUTOROUT96141902P12345696141903AUTOROUT96144881BOSS96144882AUTOROUT96144883AUTOROUT

---

<div class="post-metadata">

**Author:** ![akretschmer](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/a6a055/32.png) [@akretschmer](https://www.pg-forum.de/u/akretschmer)\
**Post date:** [13. April 2010 um 13:44 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/2 "2010-04-13T13:44:53Z")

</div>

> [@desk.top](#):
>
> Hallo, ich habe ein Problem. Seit zwei Stunden tüftel ich rum und komm zu keinem Ergebnis. Ich brauche eine Oracle-Abfrage für folgendes Problem.  
> Ich habe eine Tabelle, in der es zu einer INVOICE\_NO mehrere Versionen (SEQUENCE\_NO) geben kann. Ich will mir nun alle INVOICE\_NO anzeigen lassen, für die es in keiner ihrer Versionen einen Eintrag ‘P%’ im Feld USER\_INITIAL gibt. Wie mache ich sowas?
> 
> Hier eine Beispieltabelle:  
> **INVOICE\_NO**** SEQUENCE\_NO ****USER\_INITIAL** 96140431BOSS96140432BOSS96140433AUTOROUT96141901AUTOROUT96141902P12345696141903AUTOROUT96144881BOSS96144882AUTOROUT96144883AUTOROUT

Sehen so ORACLE-Tabellen aus? Schauder …

```plaintext
test=*# select distinct invoice from desktop except select invoice from desktop where sequence ~ 'fasel';
 invoice
---------
       2
(1 row)

test=*# select * from desktop ;
 invoice | sequence
---------+----------
       1 | bla
       1 | fasel
       1 | blub
       2 | bla
       2 | blub
(5 rows)

test=*# select distinct invoice from desktop except select invoice from desktop where sequence ~ 'fasel';
 invoice
---------
       2
(1 row)

```

falls ich deinen Wunsch richtig verstanden habe…  
  
  
Andreas

---

<div class="post-metadata">

**Author:** ![desk.top](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/d/57b2e6/32.png) [@desk.top](https://www.pg-forum.de/u/desk.top)\
**Post date:** [13. April 2010 um 13:45 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/3 "2010-04-13T13:45:00Z")

</div>

Sorry, hier noch mal die Tabelle

INVOICE\_NO | SEQUENCE\_NO | USER\_INITIAL  
9614043 | 1 | BOSS  
9614043 | 2 | BOSS  
9614043 | 3 | AUTOROUT  
9614190 | 1 | AUTOROUT  
9614190 | 2 | P123456  
9614190 | 3 | AUTOROUT  
9614488 | 1 | BOSS  
9614488 | 2 | AUTOROUT  
9614488 | 3 | AUTOROUT

Hier sollten dann z.B. nur die beiden INVOICE\_NO 9614043 und 9614488 ausgegeben werden.

---

<div class="post-metadata">

**Author:** ![desk.top](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/d/57b2e6/32.png) [@desk.top](https://www.pg-forum.de/u/desk.top)\
**Post date:** [13. April 2010 um 13:55 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/4 "2010-04-13T13:55:56Z")

</div>

Super! Danke!  
Except gibt’s zwar bei Oracle nicht, das müsste MINUS sein, aber das Ergebnis sieht schon mal ganz gut aus, ich werde es jetzt noch sporadisch prüfen.

---

<div class="post-metadata">

**Author:** ![akretschmer](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/a6a055/32.png) [@akretschmer](https://www.pg-forum.de/u/akretschmer)\
**Post date:** [13. April 2010 um 14:10 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/5 "2010-04-13T14:10:26Z")

</div>

> [@desk.top](#):
>
> Super! Danke!  
> Except gibt’s zwar bei Oracle nicht, das müsste MINUS sein, aber das Ergebnis sieht schon mal ganz gut aus, ich werde es jetzt noch sporadisch prüfen.

Nun ja, EXCEPT ist SQL-Spec.

Andreas

---

<div class="post-metadata">

**Author:** ![ads](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/8e7dd6/32.png) [@ads](https://www.pg-forum.de/u/ads)\
**Post date:** [13. April 2010 um 17:34 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/6 "2010-04-13T17:34:54Z")

</div>

> [@akretschmer](#):
>
> Nun ja, EXCEPT ist SQL-Spec.

Und Oracle ist? … _g_

---

<div class="post-metadata">

**Author:** ![castorp](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/c/e99b99/32.png) [@castorp](https://www.pg-forum.de/u/castorp)\
**Post date:** [13. April 2010 um 19:18 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/7 "2010-04-13T19:18:36Z")

</div>

> [@ads](#):
>
> Und Oracle ist? … _g_

Zu Oracle’s Verteidung muss man wohl sagen, dass MINUS schon drin war bevor der Standard EXCEPT definiert hat.  
EXCEPT ist glaube ich erst mit SQL92 reingekommen, MINUS gab es schon in Oracle 7 (also irgendwann Mitte/Ende der 80er)

---

<div class="post-metadata">

**Author:** ![system](https://www.pg-forum.de/uploads/default/original/1X/dc97a981dd26692d5fb52e8b8fc7c090d7b9559a.png) [@system](https://www.pg-forum.de/u/system)\
**Post date:** [21. Februar 2021 um 07:12 UTC](https://www.pg-forum.de/t/nur-relevante-nummern-ausgeben/5098/8 "2021-02-21T07:12:31Z")

</div>


