Mipe: Werte in anderer Tabelle vorhanden?

Hallo,

ich habe hier zwei Tabellen.

[Kunden] = Kundendaten mit Kundennr.
[Rabatt] = Rabattangaben mit Kundennr.

Wie kann ich mir jetzt alle Kundendaten anzeigen lassen, deren Kundennummer NICHT in [Rabatt] vorkommt?

Ich wäre euch für eine Antwort sehr dankbar.

Mipe

  1. Hi Mipe,

    mit welcher "Sprache" holst du denn die Informationen ? Perl ? Php ?

    dann kann man weiter helfen.

    mfg

    .mase

    1. Meine Frage war eigentlich, ob es da mittels SQL eine Ergebnisliste gibt. Also ohne nebenher nochwas zu tun.
      Ich erstelle nämlich mittels Crystal Reports einen Bericht direkt aus der Datenbank.

      Mipe

  2. Hi!

    Mein Vorschlag (Wahrscheinlich eher stümperhaft):

    1. Tabelle abfragen....
       KNs in Array (nummer[$i]) speichern
    2. tabelle abfragen
       KNn nur in 2tem array (nummer_ohne_rabbat[$i]) speichern, wenn diese nicht im Array nummer[$i] vorhanden sind...

    Gruss adrian

  3. Halihallo Mipe

    ich habe hier zwei Tabellen.
    [Kunden] = Kundendaten mit Kundennr.
    [Rabatt] = Rabattangaben mit Kundennr.
    Wie kann ich mir jetzt alle Kundendaten anzeigen lassen, deren Kundennummer NICHT in [Rabatt] vorkommt?

    Informiere dich über LEFT|RIGHT OUTER JOIN. Dieser gibt dir auch bei nicht-existentem
    Eintrag der anderen Tabelle einen Datensatz aus, alle Felder aus Rabatt werden mit NULL
    gefüllt. In WHERE kannst du dieses Kriterium testen.

    SELECT * FROM Kunden LEFT OUTER JOIN Rabatt ON (Kundennr) WHERE Rabatt.Kundennr=NULL

    ob dies funktioniert hängt jedoch von der verwendeten Datenbank ab, die du uns
    vorenthälst.

    Viele Grüsse

    Philipp

    1. Ich verwende hier einen MS-SQL-Server, bei dem ich jetzt schon jede vorgeschlagene Methode probiert habe... nur funktioniert keine einzige... :(

      Mipe

      1. Halihallo Mipe

        Ich verwende hier einen MS-SQL-Server, bei dem ich jetzt schon jede vorgeschlagene Methode probiert habe... nur funktioniert keine einzige... :(

        SELECT * FROM Kunde WHERE Kunde.Kundennr NOT IN (
           SELECT Kundennr FROM Rabatt
        )

        Viele Grüsse

        Philipp

      2. Hi!

        Ich verwende hier einen MS-SQL-Server, bei dem ich jetzt schon jede vorgeschlagene Methode probiert habe... nur funktioniert keine einzige... :(

        Tja, wozu gibt es Dokumentationen? Bei MySQL könnte ich Dir einen Link posten, aber bei MS SQL kenne ich mich nicht aus, bzw. kenne die Doku nicht. Darin wird irgendwo stehen wie das genau geht. Genügend Stichwörter um in der Doku zu suchen solltest Du jedenfalls haben.

        Grüße
        Andreas

    2. Hi Philipp!

      ob dies funktioniert hängt jedoch von der verwendeten Datenbank ab, die du uns
      vorenthälst.

      bei MySQL z.B. geht das nicht mit "= NULL", nur mit "IS NULL", aber darauf hattest Du ja hingewiesen.

      Grüße
      Andreas

      1. Halihallo Andreas

        ob dies funktioniert hängt jedoch von der verwendeten Datenbank ab, die du uns
        vorenthälst.
        bei MySQL z.B. geht das nicht mit "= NULL", nur mit "IS NULL", aber darauf hattest Du ja hingewiesen.

        Danke. Ich muss gestehen, ich hätte es falsch gemacht ;-)

        Viele Grüsse und Danke

        Philipp

  4. select * from Kunden where Kundennr not in Rabatt

    Hallo,

    ich habe hier zwei Tabellen.

    [Kunden] = Kundendaten mit Kundennr.
    [Rabatt] = Rabattangaben mit Kundennr.

    Wie kann ich mir jetzt alle Kundendaten anzeigen lassen, deren Kundennummer NICHT in [Rabatt] vorkommt?

    Ich wäre euch für eine Antwort sehr dankbar.

    Mipe

  5. Hallo Mipe

    [Kunden] = Kundendaten mit Kundennr.
    [Rabatt] = Rabattangaben mit Kundennr.

    Wie kann ich mir jetzt alle Kundendaten anzeigen lassen, deren Kundennummer NICHT in [Rabatt] vorkommt?

    Probiers mal mit folgendem SQL-Query:

    SELECT KUNDEN.* FROM KUNDEN,RABATT WHERE KUNDEN.KUNDENNR <> RABATT.KUNDENNR

    Bei meiner Access-DB funktioniert es so, vielleicht musst du, wenn du ein anderes DBS verwendest, noch etwas anpassen.

    MfG

    Tom2

    --
    "Experience is something you don't get until just after you need it."
     by Steven Wright
  6. Danke für eure Hilfe. Hier zur Info der SQL-Befehl, mit dem es funktioniert:

    ---
    SELECT * FROM Kunden WHERE (NOT EXISTS (SELECT * FROM Rabatt WHERE Kunden.Kundennr = Krabatt.Kundennr))
    ---

    Mipe