Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Werte Berechnen problem mit Null Werten (https://www.delphipraxis.net/91398-werte-berechnen-problem-mit-null-werten.html)

TUX_der_Pinguin 4. Mai 2007 11:05

Datenbank: MySQL • Version: 5 • Zugriff über: dbExpress

Werte Berechnen problem mit Null Werten
 
Hallo,

ich habe folgende Spalten in einer Tabelle:
ID
EK_Preis_1
EK_Preis_2
VK_Factor
VK_Preis

Jetzt will ich die beiden Spalten 'EK_Preis_1' und 'EK_Preis_2' zusammenrechnen.
Die Berechnungen sollen vom MySQL Server erledigt werden.

SQL-Code:
SELECT ID, EK_Preis_1 + EK_Preis_2 AS EK_Summe FROM Tabelle;
Ansich alles kein Problem jedoch steht in einem der Felder 'NULL' so lautet
EK_Summe auch NULL.

Beisp.:
EK_Preis_1 = 25.95
EK_Preis_2 = NULL
EK_Summe = NULL (soll aber 25.95 sein)

Hat jemand eine Idee wie ich das dem SQL Server beibringe?

Das zweite Problem ist, ich brauche eine Abfrage die mir entweder anzeigt was in 'VK_Preis' steht wenn das Feld nicht NULL
ist oder 'VK_Factor * EK_Summe' anzeigt.

SQL-Code:
SELECT ID, EK_Preis_1+EK_Preis_2 AS EK_Summe, [VK_Preis IS NOT NULL Or VK_Factor * (EK_Preis_1 + EK_Preis2)] FROM Tabelle;
So in der Art müßte das quasi aussehen nur so recht klappen tut es noch nicht.

Bin für jeden Tipp dankbar.

mfg

TUX

daddy 4. Mai 2007 11:10

Re: Werte Berechnen problem mit Null Werten
 
Wenn es sich um Deine "eigene" Datenbank handelt, also eine , auf die Du vollen Zugriff hast, könntest Du das Feld doch einfach als NOT NULL deklarieren und alle bisherigen NULL-Felder mit 0 füllen.

Ansonsten gäbe es für Dein zweites (und eigentlich auch für dein erstes) Problem in Firebird ein Case, das man in folgender Art verwendet:
SQL-Code:
Select Case When FeldA is NULL Then 0 Else FeldA End form ...
Vielleicht gibt es etwas Ähnliches ja in MySQL.

mkinzler 4. Mai 2007 11:11

Re: Werte Berechnen problem mit Null Werten
 
Schließe die NULL-Werte aus (in WHERE oder durch IF())

clock50 4. Mai 2007 11:11

Re: Werte Berechnen problem mit Null Werten
 
Hallo erst mal!

Beim ersten hinsehen würde ich sagen mit NULL kann man nicht rechnen aber mit '0' schon. Du solltest statt NULL - '0' in das feld eintagen.

mikhal 4. Mai 2007 12:06

Re: Werte Berechnen problem mit Null Werten
 
Such mal in der MySQL-Dokumentation nach der Funktion IFNULL.

Zitat:

IFNULL(expr1,expr2)
If expr1 is not NULL, IFNULL() returns expr1; otherwise it returns expr2. IFNULL() returns a numeric or string value, depending on the context in which it is used.
Grüße
Mikhal

TUX_der_Pinguin 4. Mai 2007 12:23

Re: Werte Berechnen problem mit Null Werten
 
Ich habe das ganze mit hilfe eurer Tipps ausprobiert und habe für beide Probleme eine Lösung gefunden.
Vorab sowohl mit einer Case struktur wie "daddy" es beschrieben hat war es möglich jedoch ist der
tipp von "mikhal" mit IFNULL() besser da die schreibweise extrem kürzer ist.

Hier die Lösungen:

1. Problem FeldA + FeldB trotz NULL Werte in einer der Spalten
SQL-Code:
SELECT IFNULL(EK_Preis_1,0)+IFNULL(EK_Preis_2,0) AS EK_Summe FROM Tabelle;

2.Problem Wenn FeldA NULL Dann FeldB * FeldC Sonst FeldA
SQL-Code:
SELECT IFNULL(VK,VK_Factor*(IFNULL(EK1,0)+IFNULL(EK2,0))) AS VK FROM Tabelle;
Vielen dank noch mal für die Zahlreiche hilfe.

mfg

TUX


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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