AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL-Anweisung von BDE nach Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Anweisung von BDE nach Firebird

Ein Thema von RWarnecke · begonnen am 3. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 17:34
Hallo zusammen,

ich habe ein Problem mit folgender SQL - Anweisung :
SQL-Code:
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;
Jedesmal, wenn ich die Ausführen will, kommt im IBExpert die Meldung :
Zitat:
arithmetic exception, numeric overflow, or string truncation.
Das geile daran ist, wenn ich für den Parameter StammNr einen Wert übergebe, der nicht existiert, kommt der Fehler nicht. Was läuft da flasch ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:28
Welche Typen haben die Felder?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:33
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
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:39
Irgendwie scheint hier ein Bereichsüberlauf stattzufinden.
Ändere die Typen mal auf Double Precision.
Kommt ein Ergebnis, oder überhaupt nichts?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:46
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:48
Frage vorher ab ob der Divisor 0 ist


... iif( SUM(UM1) is null, 0, 100 * SUM((UM1 / 100) * WE1)) / SUM(UM1)) AS WES1, ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:56
Bekomme ich immer noch den gleichen Fehler.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 18:59
... iif( SUM(UM1) is null or SUM(UM1) = 0, 0, 100 * SUM((UM1 / 100) * WE1)) / SUM(UM1)) AS WES1, ... Gibt es NULL-Werte in der Spalte?
Markus Kinzler
  Mit Zitat antworten Zitat
3. Feb 2010, 19:01
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Es geht um Datenbanken
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: SQL-Anweisung von BDE nach Firebird

  Alt 3. Feb 2010, 19:02
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 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