![]() |
Re: SQL Berechnung und NULL
Welche Funktion?
Versuch mal
SQL-Code:
...sum(iif( <Feld> is not null, <feld>, 0))...
|
Re: SQL Berechnung und NULL
Zitat:
Ich meine die Funktion SUM. Ich bin der Meinung ich zwei Felder verschiedener Tables nicht über die SUM-Funktion addieren kann. Mit Deinem Vorschlag sieht meine SQL-Abfrage so aus:
SQL-Code:
Dadurch erhalte die Fehlermeldung "Token unknown: is"
SELECT s.name||', '||s.vorname, (iif(e.punkte IS NOT NULL, e.punkte, 0)) + (iif(d.punkte IS NOT NULL, d.punkte, 0)) as punkte
FROM "T_SPIELER" s LEFT OUTER JOIN "T_EINZEL_ERGEBNIS" e ON e.spieler_id=s.id LEFT OUTER JOIN "T_DOPPEL_ERGEBNIS" d ON d.spieler_id=s.id and d.liga=e.liga WHERE (e.spieler_id is NOT NULL) AND (d.spieler_id is NOT NULL); |
Re: SQL Berechnung und NULL
Wenn du Null-Werte im where ausschließt, brauchst du diese nicht mehr mit IIf o.ä. auschließen.
Sum summiert alle werte einer oder mehrerer Spalten. |
Re: SQL Berechnung und NULL
Zitat:
In den beiden Tables habe ich lediglich nur einen Eintrag pro Spieler. Die erspielten Punkten werden schon beim Eintragen durch eine SP addiert. Ich musste nur aus Abfragegründen die Einzelspiele von den Doppel trennen. Deshalb habe ich zwei Tables mit schon summierten Werten. Nun möchte ich lediglich die beiden summierten Werte addíeren. Ich werde die Sache jetzt versuchen mittels Trigger lösen, da ich für mein Problem keine andere Lösung mehr sehe. |
Re: SQL Berechnung und NULL
versuch mal
SQL-Code:
...not is null ...
|
Re: SQL Berechnung und NULL
Wäre es nicht möglich einen Trigger zu Programmieren der keine Null auf diesen Feld zuläst sonder 0.
Somit wäre das Problem beim addieren verschwunden. Peter |
Re: SQL Berechnung und NULL
Hallo,
habe die Sache mit einem Trigger gelöst. Sobald ich einen Spieler erzeuge bekommt dieser alle Werte auf 0 gesetzt. So klappt auch die Addition. Vielen Dank für Eure Hilfe. |
Re: SQL Berechnung und NULL
Hallo Marcus,
bei mir funktioniert das:
SQL-Code:
Grüße vom marabu
/*
spieler (id, nachname, vorname) einzel (spieler_id, punkte) doppel (spieler_id, punkte) */ SELECT id, nachname, vorname, (COALESCE(e.punkte, 0) + COALESCE(d.punkte, 0)) AS punkte FROM spieler s LEFT JOIN einzel e ON s.id = e.spieler_id LEFT JOIN doppel d ON s.id = d.spieler_id |
Re: SQL Berechnung und NULL
[quote="Werwurm"]Sobald ich einen Spieler erzeuge bekommt dieser alle Werte auf 0 gesetzt.[/default]
Dafür gibts auch Default Werte. Zitat:
![]() |
Re: SQL Berechnung und NULL
Da hilft eigentlich nur noch der Firebird Null-Guide. Dringend lesen. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz