![]() |
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:
Ansich alles kein Problem jedoch steht in einem der Felder 'NULL' so lautet
SELECT ID, EK_Preis_1 + EK_Preis_2 AS EK_Summe FROM Tabelle;
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:
So in der Art müßte das quasi aussehen nur so recht klappen tut es noch nicht.
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;
Bin für jeden Tipp dankbar. mfg TUX |
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:
Vielleicht gibt es etwas Ähnliches ja in MySQL.
Select Case When FeldA is NULL Then 0 Else FeldA End form ...
|
Re: Werte Berechnen problem mit Null Werten
Schließe die NULL-Werte aus (in WHERE oder durch IF())
|
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. |
Re: Werte Berechnen problem mit Null Werten
Such mal in der MySQL-Dokumentation nach der Funktion IFNULL.
Zitat:
Mikhal |
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:
Vielen dank noch mal für die Zahlreiche hilfe.
SELECT IFNULL(VK,VK_Factor*(IFNULL(EK1,0)+IFNULL(EK2,0))) AS VK FROM Tabelle;
mfg TUX |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 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