Ergebnis 1 bis 7 von 7

Thema: Nur relevante Nummern ausgeben

  1. #1
    desk.top ist offline Neuer Benutzer
    Registriert seit
    13.04.2010
    Beiträge
    4

    Standard Nur relevante Nummern ausgeben

    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_NOSEQUENCE_NOUSER_INITIAL96140431BOSS 96140432BOSS 96140433AUTOROUT96141901AUTOROUT96141902P12345696141903AUTOROUT96144881BOSS 96144882AUTOROUT96144883AUTOROUT

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von desk.top Beitrag anzeigen
    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_NOSEQUENCE_NOUSER_INITIAL96140431BOSS 96140432BOSS 96140433AUTOROUT96141901AUTOROUT96141902P12345696141903AUTOROUT96144881BOSS 96144882AUTOROUT96144883AUTOROUT
    Sehen so ORACLE-Tabellen aus? Schauder ...

    Code:
    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
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    desk.top ist offline Neuer Benutzer
    Registriert seit
    13.04.2010
    Beiträge
    4

    Standard


    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.

  4. #4
    desk.top ist offline Neuer Benutzer
    Registriert seit
    13.04.2010
    Beiträge
    4

    Standard

    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.

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von desk.top Beitrag anzeigen
    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
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    ads
    ads ist gerade online Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Nun ja, EXCEPT ist SQL-Spec.
    Und Oracle ist? ... *g*
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  7. #7
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    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)
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Ähnliche Themen

  1. Zugriff von unterschiedlichsten IP Nummern
    Von burkhard im Forum Konfiguration
    Antworten: 4
    Letzter Beitrag: 29.09.2010, 08:18
  2. Zeilen als Spalten ausgeben
    Von Andreas1981 im Forum SQL
    Antworten: 3
    Letzter Beitrag: 24.08.2010, 08:47
  3. Frage Varchar Sort mit Nummern
    Von cevou im Forum SQL
    Antworten: 22
    Letzter Beitrag: 15.02.2010, 11:15
  4. Sequenz von Nummern aber partiell unique
    Von SPYder im Forum Trigger und Funktionen
    Antworten: 9
    Letzter Beitrag: 04.05.2009, 12:51
  5. 2 Tables verlinkten Name ausgeben
    Von marc9022 im Forum Programmierung
    Antworten: 1
    Letzter Beitrag: 24.03.2009, 21:15

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum