Köffi: Hilfe bei SQL-Statement

Hallo, ich brauche Hilfe...

Wer kann mir folgendes SQL-Statement basteln.

Ich habe zwei Tabellen:

| ID | WertA |
  1    34
  2    32
  3    44
  4    49
  5    13
  6    39
  7    31
  8    24

In dieser Tabelle befinden sich vorgegebene Werte

und

| ID | Person | WertB
  3    X        43
  4    X        25

Diese Tabelle wird nach und nach mit Werten gefüllt.

Ich brauche folgende Select-Ausgabe:
Gebe alle Werte A und B der ID's 3 bis 6 zur Person X aus, unäbhängig davon, ob in der 2.Tabelle schon ein Eintrag existiert.

Wenn ich folgendes Statement benutze habe ich das Problem, dass ich nur die Ausgabe bekomme von Werten, die in beiden Tabellen eingeplegt wurden.

Select a.ID, b.Person, a.WertA, b.WertB
From tabelle1 a, tabelle2 b
Where (a.ID BETWEEN 3 AND 6)
AND (b.Person ='X')

ergibt folgendes:

| ID | Person | WertA | Wert B
  3     X        44      43
  4     X        49      25

Ich möchte aber alle Werte ausgegeben bekommen...

| ID | Person | WertA | Wert B
  3     X        44      43
  4     X        49      25
  5     X        13      NULL
  6     X        39      NULL

Kann ich mir das irgendwie basteln...
Vielen Dank
Köffi

  1. hi

    also irgendwie ist das ziemlich unlogisch was du da machen willst?!

    Ich möchte aber alle Werte ausgegeben bekommen...

    | ID | Person | WertA | Wert B
      3     X        44      43
      4     X        49      25
      5     X        13      NULL
      6     X        39      NULL

    wie kommst du darauf? was ist der sinn dieser abfrage?!

    grüße sascha

    1. Sinn !?
      Muss immer alles gleich einen Sinn haben ?

      Ich wollte halt die Daten etwas aufsplitten. Der Kern ist, das die 1.Tabelle bereits fest steht und das in die 2.Tabelle nach und nach Datensätze eingefügt werden.

      Naja, ich hatte auch schon an den Join-Befehl gedacht. Ich werde mich da mal einlesen.

      Vielen Dank
      Köffi

      1. Hi Köffi

        Naja, ich hatte auch schon an den Join-Befehl gedacht. Ich werde mich da mal einlesen.

        Ja, genauer gesagt wird es der Left / Right (Outer) Join sein.

        Gruss Daniela

        1. Jawoll, mit dem Left Outer Join klappt es. Allerdings ist das wohl zu kompliziert und liefert auch nicht die gewünschte Effizienz. Hab daher meine Tabellenstruktur überarbeitet und mache die Abfrage nun anders. Trotzdem danke für eure Hilfe...

  2. Also ich würd dir mal empfehlen dir mal die Join Klausel anzuschauen, damit kannst du werte anzeigen lassen die Null sind.
    einfach Dr. Google fragen

    cu shadow

  3. Mahlzeit;

    Hallo, ich brauche Hilfe...

    Wer kann mir folgendes SQL-Statement basteln.

    Ich habe zwei Tabellen:

    | ID | WertA |
      1    34
      2    32
      3    44
      4    49
      5    13
      6    39
      7    31
      8    24

    In dieser Tabelle befinden sich vorgegebene Werte

    und

    | ID | Person | WertB
      3    X        43
      4    X        25

    Diese Tabelle wird nach und nach mit Werten gefüllt.

    Ich brauche folgende Select-Ausgabe:
    Gebe alle Werte A und B der ID's 3 bis 6 zur Person X aus, unäbhängig davon, ob in der 2.Tabelle schon ein Eintrag existiert.

    Wenn ich folgendes Statement benutze habe ich das Problem, dass ich nur die Ausgabe bekomme von Werten, die in beiden Tabellen eingeplegt wurden.

    Select a.ID, b.Person, a.WertA, b.WertB
    From tabelle1 a, tabelle2 b
    Where (a.ID BETWEEN 3 AND 6)
    AND (b.Person ='X')

    AND b.WertB IS NULL OR b.WertB IS NOT NULL

    ungetestet, bitte prüfen, rolf

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?