Ergebnis 1 bis 3 von 3

Thema: MSSQL for each Schleife zum join

  1. #1
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271

    MSSQL for each Schleife zum join

    Moin Moin,

    ich versuche aus dem SQL Server eine Tabelle zurückzubekommen, die aus 2 Tabellen besteht.

    Tabelle 1
    Teilenummer
    Date
    Volumen

    Tabelle 2
    Date

    In Tabelle 1 sind je Teilenummern zu einem Datum Stückzahlen gespeichert. Alle verfügbaren Datume sind in Tabelle 2 vorhanden. Es kann aber sein, dass eine Teilenummer zu einem Datum kein Volumen hat, da diese Tabelle nur eine neue Zeile erstellt, wenn eine überarbeitete Plaung für eine Teilenummer eingetragen wird.

    In anderen Sprachen wäre mir klar, was ich möchte:
    Code:
    foreach eintrag in Tabelle 2 {
       if (volumen zu diesem eintrag in Tabelle 2) {
          rufe teilenummer aus Tabelle 1 mit diesem volumen zu diesem Datum auf
       } else {
          rufe das volumen der teilenummer des letzten Datums aus Tabelle 1 auf
       }
    }
    Kann ich das auch direkt in SQL machen?

    Mein Weg bis dato ist Tabelle 2 als primäre Tabelle anzusehen (da diese alle Werte hat) und diese dann mit Tabelle 1 zu joinen. Aber dadurch fange ich das nicht vorhandensein der Daten nicht ab. (das else)

    Ich hoffe das war verständlich.
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  2. #2
    TP-Senior
    Registriert seit
    Dec 2008
    Beiträge
    187
    Wenn ich es richtig verstanden habe wäre der RIGHT OUTER JOIN das Mittel zum Zweck:

    SQL-Pseudo-Code:
    SELECT ... FROM Tabelle1 RIGHT OUTER JOIN Tabelle2 ON Tabelle1.Date = Tabelle2.Date

    ...alle Werte aus Tabelle2 erscheinen in der Ergebnistabelle. Wenn es kein Verbundpartner (Spalte Date) in Tabelle1 gibt, dann werden die Spalten aus Tabelle1 mit NULL aufgefüllt.

    Vll. noch On-Top zum Background: der "normale" JOIN ist der NATURAL JOIN. Hier tauchen aber - wie du schon angemerkt hast - nur die Werte auf, die auch einen Verbundpartner haben.

  3. #3
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    Danke, werd ich Montag mal probieren.

    Ja, ich hab bis dato nicht mit den joins gespielt. Aber das "mit NULL aufgefüllt" ist ja nicht was ich möchte.
    Die Auffüllung sollte mit dem nächst älteren Wert sein.

    Weil NULL wäre ja nicht richtig. Wenn kein Wert da ist, bedeutet dass nur, dass er nicht aktualisiert wurde. Also ist der ältere Wert weiterhin gültig.
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [Sonstige] [MSSQL] Utf-8
    Von Master_T2 im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 31.01.2009, 12:21
  2. PHP und MsSQL einrichten
    Von ludwigvan im Forum Dreamweaver & andere Webeditoren
    Antworten: 4
    Letzter Beitrag: 06.01.2006, 17:29
  3. MSSQL & C++
    Von cemo999 im Forum Traum-Dynamik
    Antworten: 5
    Letzter Beitrag: 28.09.2004, 15:31
  4. [MSSQL] Escapen?
    Von Stuck Mojo im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 10.11.2003, 10:27
  5. Mit PHP auf MSSQL zugreifen
    Von Navacho im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 26.11.2002, 16:42

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51