1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SQl Abfrage wo ist der Fehler?

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von fridolin12, 7 November 2010.

  1. fridolin12

    fridolin12 Benutzer

    Fragestellung:
    Geben Sie jene Kunden (Nr, Name) aus, die mindestens einen Artikel gekauft haben, aber nie vom Vertreter 'GP' betreut worden sind.

    Tabellen:

    kunde(nr, name, plz, strasse, gebiet) (View)
    artikel(ean, bezeichnung, kategorie, ekpreis) (View)
    vertreter(kurzzeichen, name provision) (View)
    auftragskopf(nr, kunde, vertreter, lieferdatum) (View)
    auftragszeile(nr, posnr, artikel, vkpreis, menge) (View)

    Habe nun folgende Abfrage:
    Select k1.nr,k1.name
    From kunde k1 Left Outer Join auftragskopf ak1 On k1.nr=ak1.kunde
    Where ak1.nr Is Not Null and ak1.vertreter!='GP'



    Ergebisse dieser Abfrage:
    NR NAME
    11111 Roller
    15882 Schieber
    24537 Raser

    Der Roller wurde einmal von GP betreut und einmal nicht wie kann ich diesen Fall wegbringen?

    Bitte um Hilfe wäre wirklich wirklich wichtig!
     
  2. thomas_w

    thomas_w Datenbank-Guru

    AW: SQl Abfrage wo ist der Fehler?

    Es ist Sonntag, da löse ich für gewöhnlich die Informatik-Hausaufgaben anderer ungern.

    Grüße
    Thomas
     
  3. fridolin12

    fridolin12 Benutzer

    AW: SQl Abfrage wo ist der Fehler?

    Ja das ist verständlich leider muss ich die Abfragen morgen früh haben dachte ich bringe es selber hin aber komme einfach nicht mehr weiter!

    Wäre meine Rettung

    Aber trotzdem danke vielleicht kannst du mir trotzdem helfen

    fridolin
     
  4. thomas_w

    thomas_w Datenbank-Guru

    AW: SQl Abfrage wo ist der Fehler?

    eventuell so, wenn kein Tippfehler drin ist...

    Code:
    SELECT k1.nr,
           k1.name
      FROM kunde k1
      JOIN auftragskopf ak1
        ON k1.nr = ak1.kunde
    WHERE  NOT EXISTS ( SELECT COUNT(*) FROM auftragskopf ak2
                         WHERE ak2.kunde = k1.nr
                           AND ak2.vertreter = 'GP' )
    
    Grüße
    Thomas
     
  5. fridolin12

    fridolin12 Benutzer

    AW: SQl Abfrage wo ist der Fehler?

    Das habe ich auch schon probiert bekomme dann als Resultat kein einziges Tupel obwohl 2 Tupel richtigen wären.

    RESULT
    Sorry! Your query is not correct. ERROR REPORT
    Error: Incorrect number of tuples! Description: 2 tuples are missing in the result of your query. QUERY RESULT
    NR NAME

    Kann das sein weil Count(*) 0 liefert und das auch eine Lösung ist?

    Das ist die richtige Lösung danke vielleicht schaffe ich mit deiner Hilfe die anderen Aufgaben auch noch
    SELECT k1.nr,
    k1.name
    FROM kunde k1
    JOIN auftragskopf ak1
    ON k1.nr = ak1.kunde
    WHERE 0= ( SELECT COUNT(*) FROM auftragskopf ak2
    WHERE ak2.kunde = k1.nr
    AND ak2.vertreter = 'GP' )




     
  6. thomas_w

    thomas_w Datenbank-Guru

    AW: SQl Abfrage wo ist der Fehler?

    Stimmt, COUNT(*) liefert hier 0. Mein Fehler, korrekt wäre:

    Code:
    SELECT k1.nr,
           k1.name
      FROM kunde k1
      JOIN auftragskopf ak1
        ON k1.nr = ak1.kunde
    WHERE  NOT EXISTS ( SELECT 1 FROM auftragskopf ak2
                         WHERE ak2.kunde = k1.nr
                           AND ak2.vertreter = 'GP' )
    
    Grüße
    Thomas
     

Diese Seite empfehlen