Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fehlerbehandlung im SQL Statement
zurück: Berechnung Alter mit Komma weiter: Access 2003 Aktualisierungsabfrage mit Variablen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
WasErlaubeSTRUUNZ
Gast


Verfasst am:
27. Jul 2010, 23:50
Rufname:

Fehlerbehandlung im SQL Statement - Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Hallo die Herrschaften,

ist es möglich eine Fehlerbehandlung in SQL abzubilden, zB durch die iif-Funktion?

ich habe ein Statement wie folgendes
Code:
SELECT tab1.id, [tab1.wert1]*100/[wert2.test] AS test ...
einer der beiden werte oder beide können dabei 0 sein. Und wie ja bekannt ist, mag das der computer nicht so gerne durch 0 dividieren

Gruß
AS55
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Jul 2010, 01:19
Rufname:


AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Da gäbe es dann z.B. dies:
Code:
SELECT ID, IIf(Nz([wert2],0)=0,0,[wert1]*100/[wert2]) AS test
FROM   tab1;

_________________
Gruß

AS
Gast



Verfasst am:
28. Jul 2010, 13:44
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

ist nz nicht deckungsgleich mit iif(isnul()) ?

mein SQL-Statement gibt mir #FEHLER zurück, da ich durch 0 dividiere. ich würde gerne diesen Fall abfangen
Gast



Verfasst am:
28. Jul 2010, 13:49
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Hallo,
Zitat:
ich würde gerne diesen Fall abfange
Das sollte doch der Code von "AS55" tun Confused

Gruß Mike
Gast



Verfasst am:
28. Jul 2010, 14:04
Rufname:


AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

ja das tut er auch, vielen dank! habs grad gecheckt.
LEider versteh ich es noch nicht ganz? wäre toll wenn jemand die muße findet und es mir kurz erkären könnte.

Vielen Dank
KlausMz
Moderator Access


Verfasst am:
28. Jul 2010, 14:11
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Hallo,
Nz() macht aus Null eine 0. Mit der wird verglichen. Die IIf Bedingung prüft ob 0 (Null wurde ja in 0 gewandelt). Wenn es eine 0 ist wird nichts gemacht, wenn <>0 wird gerechnet.

Beachte: Null=Nix und hat mit der Zahl 0 nichts zu tun.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
28. Jul 2010, 14:13
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Hallo,
Code:
Nz([wert2],0)
NZ macht aus einem undefinierten Wert eine 0.

Die eigentliche "Fehlerbehandlung" macht aber das iif:
Wenn "Wert2" 0 ist (Nz([wert2],0)=0), dann gibt iif eine 0 zurück. Ist der "Wert2" nicht 0, wird die Berechnung durchgeführt und iif gibt dieses Ergebnis zurück.

sh. Auch Onlinehilfe zu iif

Gruß Mike
AS55
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Jul 2010, 14:15
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Das ist eigentlich weitgehend selbstklärend. Wenn in dem Feld des Divisors (wert2) nichts drin steht oder der Wert 0 ist, bewirkt die Nz-Funktion erstmal, daß es in jedem Fall wie "0" behandelt wrid. Die Abfrage setzt dann in diesem Falle den Abfragewert auf 0. Genausogut kannst du dort auch "durch Null geht nicht" oder dergl. einsetzen, allerdings ist das ja nicht besser als "#Fehler". Falls der Wert von 0 verschieden ist, wird die Prozentberechnung ausgeführt und der Wert des Bruches ausgegeben.
_________________
Gruß

AS
KlausMz
Moderator Access


Verfasst am:
28. Jul 2010, 14:16
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Hallo,
3 Erkärungen und alle sagen das Gleiche, was willst Du mehr. Laughing Laughing

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
28. Jul 2010, 14:27
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

vielen lieben Dank!

tolles Forum. Daumen hoch!
Gast



Verfasst am:
28. Jul 2010, 16:02
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Bei Nz muss man nicht zwangsläufig 0 oder "" als Ersatzwert mitgeben:
Code:
SELECT ID, Nz([wert1], 0) * 100 / Nz([wert2], 1) AS test
FROM tab1;

Das ist dann übrigens keine Fehlerbehandlung, sondern eine Fehlervermeidung.
Gast



Verfasst am:
28. Jul 2010, 16:34
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

was passiert wenn sowohl wert1 als auch wert2 = 0 sind?

was passiert wenn sowohl wert1 als auch wert2 = NULL sind?
AS55
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Jul 2010, 18:28
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Du nervst. Tu einfach so, als wärest du das Programm und führe die Berechnung aus.
_________________
Gruß

AS
Gast



Verfasst am:
29. Jul 2010, 11:54
Rufname:

AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Ja wer wird denn da gleich so biestig sein ;) Wie bereits erwähnt können beide Werte 0 respektive NULL sein. Ich bin leider nicht solange im Safte wie Ihr, vielleicht ist auch mein logisches Denkvermögen nicht entsprechend, und bitte daher um Eure Hilfe, da ich es mir selber nicht ableiten kann Sad.

Wenn es Euch nervt dann tut es mir leid, dann muss ich damit leben keine Antwort zu erhalten.

Ich danke ich trotzdem für eure Mithilfe, das hat mich schon ein ganzes Stück weitergebracht Smile

Gruß
AS55
Im Profil kannst Du frei den Rang ändern


Verfasst am:
29. Jul 2010, 14:29
Rufname:


AW: Fehlerbehandlung im SQL Statement - AW: Fehlerbehandlung im SQL Statement

Nach oben
       Version: Office 2007

Es geht darum, daß das hier keine Einbahnstraße ist. Wir antworten hier auf Fragen, weil wir das interessant, gut und richtig finden. Die "Gegenleistung" wird hier nicht in klingender Münze, sondern in entsprechender Eigenbemühung erbracht.

Im Laufe des Threads wurde bereits mehrfach die Funktion Nz() erklärt - sie sorgt dafür, daß "Nullwerte" (was eben nicht der Zahlenwert 0 ist oder die leere Zeichenfolge ""!) wie 0 oder ein anderer vordefinierter Wert behandelt wird.

Insofern wird die Abfrage die gleichen Ergebnisse liefern für die Fälle, wo a. Wert1 Null oder 0, b. Wert2 Null oder 0 oder eben c. Wert1 und Wert2 Null oder 0 ist.

Geh es nochmal durch und stelle das Verhalten des Systems in Gedanken nach. Wenn du dann noch Fragen hast, kannst du die gerne Stellen - aber der Grundsatz ist eben
"Erst denken und recherchieren (Such-Hilfe!) - dann fragen"
und nicht umgekehrt.

_________________
Gruß

AS
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: SQL abfrage in einer Tabelle Speichern 0 Oberwald 2284 27. Jun 2005, 17:08
Oberwald SQL abfrage in einer Tabelle Speichern
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Befehle in MS Access 1 kpf 5618 02. Mai 2005, 12:56
stpimi SQL Befehle in MS Access
Keine neuen Beiträge Access Tabellen & Abfragen: SQL : Datenbank löschen 1 cfl2si 7440 23. März 2005, 12:30
Willi Wipp SQL : Datenbank löschen
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Gruppierung -AXP 2 nepokat 601 03. Feb 2005, 08:46
nepokat SQL Gruppierung -AXP
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle per SQL umbennen (Access 2000) 2 DerPater 1084 09. Dez 2004, 14:02
Gast Tabelle per SQL umbennen (Access 2000)
Keine neuen Beiträge Access Tabellen & Abfragen: Access SQL auskommentieren 2 excalibur 7156 21. Nov 2004, 20:24
excalibur1 Access SQL auskommentieren
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? 2 SCHNEEMANN 998 18. Okt 2004, 17:26
Willi Wipp Wenn-Dann-Sonst in SQL???
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn SQL Abfrage keine Werte gefunden hat, dann... 6 Danny G. 1787 30. Sep 2004, 18:19
Willi Wipp Wenn SQL Abfrage keine Werte gefunden hat, dann...
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Abfrage ob ein Wert in der Tabelle enthalten ist 1 notausgang 1301 23. Sep 2004, 09:42
stpimi SQL - Abfrage ob ein Wert in der Tabelle enthalten ist
Keine neuen Beiträge Access Tabellen & Abfragen: Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...) 2 SMArmageddon 2417 01. Sep 2004, 15:07
SMArmageddon Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...)
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage 2 Gast 970 20. Jul 2004, 17:29
Gast SQL Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Verschachtelte SQL Abfragen in ACCESS 2000? 1 Gast 1782 17. Jul 2004, 22:34
faßnacht(IT); Verschachtelte SQL Abfragen in ACCESS 2000?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum