SQL-Anweisung von BDE nach Firebird
Hallo zusammen,
ich habe ein Problem mit folgender SQL - Anweisung :
SQL-Code:
Jedesmal, wenn ich die Ausführen will, kommt im IBExpert die Meldung :
SELECT Monat,
SUM(UM1) AS UMS1, (100 * SUM((UM1 / 100) * WE1)) / SUM(UM1) AS WES1, SUM(UM2) AS UMS2, (100 * SUM((UM2 / 100) * WE2)) / SUM(UM2) AS WES2, SUM(UM3) AS UMS3, (100 * SUM((UM3 / 100) * WE3)) / SUM(UM3) AS WES3, SUM(UM4) AS UMS4, (100 * SUM((UM4 / 100) * WE4)) / SUM(UM4) AS WES4 FROM Umsatze U WHERE EXISTS ( SELECT StammNr FROM Produkte P WHERE (P.ProduktNr = U.ProduktNr) AND (P.StammNr = :StammNr)) GROUP BY Monat; Zitat:
|
Re: SQL-Anweisung von BDE nach Firebird
Welche Typen haben die Felder?
|
Re: SQL-Anweisung von BDE nach Firebird
StammNr, ProduktNr, Monat = Integer
UM1, WE1, UM2, WE2, UM3, WE3, UM4, WE4 = float Edit: Die Tabelle Produkte ist mit ProduktNr mit der Tabelle Umsatze verbunden |
Re: SQL-Anweisung von BDE nach Firebird
Irgendwie scheint hier ein Bereichsüberlauf stattzufinden.
Ändere die Typen mal auf Double Precision. Kommt ein Ergebnis, oder überhaupt nichts? |
Re: SQL-Anweisung von BDE nach Firebird
Es kommt kein Ergebnis. Ich habe mittlerweile herausgefunden, dass wenn ich die Zeilen mit WESx rauslasse funktioniert die Abfrage. Laut dieser Seite hat der Fehler etwas mit einer Division 0 zu tun. Ich stelle mir nur die Frage, wie kann ich die zweite Berechnung umstellen, dass der Fehler nichmehr auftritt.
|
Re: SQL-Anweisung von BDE nach Firebird
Frage vorher ab ob der Divisor 0 ist
SQL-Code:
... iif( SUM(UM1) is null, 0, 100 * SUM((UM1 / 100) * WE1)) / SUM(UM1)) AS WES1, ...
|
Re: SQL-Anweisung von BDE nach Firebird
Bekomme ich immer noch den gleichen Fehler.
|
Re: SQL-Anweisung von BDE nach Firebird
SQL-Code:
Gibt es NULL-Werte in der Spalte?
... iif( SUM(UM1) is null or SUM(UM1) = 0, 0, 100 * SUM((UM1 / 100) * WE1)) / SUM(UM1)) AS WES1, ...
|
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Es geht um Datenbanken |
Re: SQL-Anweisung von BDE nach Firebird
Null-Werte keine. Wenn dann nur die Zahl 0. Danke für Deine Hilfe. Habe ebengrade Deine iif-Abfragee von is null auf gleich null geändert und jetzt funktioniert es. Danke.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz