Announcement

Collapse
No announcement yet.

SQL-Summenberechnung mit NULL-Werten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL-Summenberechnung mit NULL-Werten

    Hallo zusammen,

    ich möchte in einer Paradox-Tabelle per SQL über GROUP BY und SUM Felder summieren. Dabei handelt es sich um eine Haupttabelle mit 2 Detailtabellen. In einer Detailtabellen werden Zeiten und die zugehörigen Kosten in der anderen Tabelle Material und zugehörige Materialkosten erfasst. Ich möchte nun über

    SELECT A.ArtNr, A.ID, A.Anzahl, <b>sum(Z.Kosten)+sum(M.Kosten)</b><br>
    FROM Artikel A<br>
    LEFT OUTER JOIN Zeit Z on Z.ArtNrID=A.ID<br>
    LEFT OUTER JOIN Material M on M.ArtNrID=A.ID<br>
    GROUP BY A.ArtNr, A.ID, A.Anzahl<br>

    jeden Satz aus Artikel anzeigen und falls Kosten erfasst wurden, auch diese berechnen Bei obigem SQL werden zwar alle Sätze angezeigt, wenn aber z.B. nur für Zeit Kosten erfasst wurden, wird als sum(Z.Kosten)+sum(M.Kosten) = NULL berechnet, da z.B. 256+NULL=NULL ist.

    Die Abfrage WHERE Feld <> NULL geht nicht, da ich auch Sätze angezeigt haben möchte, für die kein Wert eingegeben ist. Das Feld generell mit 0 belegen geht auch nicht, da es sich in Wirklichkeit um über LEFT OUTER JOIN verbundene tabellen handelt und manschmal eben gar kein Detailsatz vorhanden ist

    Gruß Gerd

  • #2
    Hallo,

    in diesem Fall hat man bei LOCAL SQL (der BDE-Simulation für dBASE- und Paradox-Datenbanken) schlechte Karten, da eine Funktion wie zum Beispiel <B>ISNULL(<i>Spalte</i>, <i>Ersatzwert</i>)</b> im Sprachumfang von LOCAL SQL fehlt. Beim SQL Server 7/2000 wäre das kein Problem, dort könnte man alle NULL-Werte für die Berechnung als numerische 0 interpretieren lassen.

    Wenn die komplette Berechnung direkt über SQL laufen soll, wird nichts anderes übrigbleiben, als auf den OUTER JOIN zu verzichten und anstelle von NULL den Wert 0 in den relevanten Spalten zu speichern

    Comment

    Working...
    X