Prüfung mit IS NULL funktioniert bei mir nicht

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Prüfung mit IS NULL funktioniert bei mir nicht

Re: Prüfung mit IS NULL funktioniert bei mir nicht

von heinz_ketchup » Di, 05.02.2008 09:40

Hallo komma4,

ok, hast recht, verstehe, wenn Base keine IF()-Funktion kennt, dann geht's natürlich nicht.

Ich erstelle meinen Query allerdings in Navicat, das ich als GUI-Tool für die Verwaltung meiner MySQL verwende. Damit müsste es eigentlich funktionieren.

Base benutze ich nur, um mit JDBC die Anbindung für Calc zu bekommen. In Calc frage ich dann meine MySQL-Daten ab. Hier muss die IF()-Funktion nicht laufen.

Wenn die IF()-Funktion Schwierigkeiten bereiten kann, dann nehme ich auch gerne einen anderen Vorschlag an. Vielleicht gibt es ja einen viel eleganteren Weg. Ich hatte zuerst ja auch mit IFNULL() experimentiert. Es geht mir mehr um die Lösung meines Problems, als um den Weg mit welcher Funktion. Da bin ich recht schmerzfrei.

Danke und schöne Grüße
Werner

Re: Prüfung mit IS NULL funktioniert bei mir nicht

von komma4 » Mo, 04.02.2008 22:52

heinz_ketchup hat geschrieben:Meine Prüfung, ob das Konto vorhanden ist oder nicht, soll in MySQL laufen.
... da ist auch die Frage, ob die verwendete Anbindung an Base (MySQL, JDBC, ODBC?) die IF-Abfrage unterstützt.

Konntest Du das an einem einfachen Beispiel schon verifizieren, Werner?

OOo Version?

Re: Prüfung mit IS NULL funktioniert bei mir nicht

von heinz_ketchup » Mo, 04.02.2008 17:06

Hallo Thomas,

jetzt hast Du mich gleich als vollkommenen Ignoranten geoutet. :shock:

Ich habe natürlich nicht an die - anscheinend doch nicht - so feinen Unterschiede zwischen HSQLDB und MySQL gedacht. :roll: SORRY vielmal !!!

Meine Prüfung, ob das Konto vorhanden ist oder nicht, soll in MySQL laufen. Mit IFNULL habe ich auch schon experimentiert. Da ist bei mir aber auch nichts gescheites rausgekommen.

Danke für Deinen Hinweis!

Viele Grüße
Werner

Re: Prüfung mit IS NULL funktioniert bei mir nicht

von Toxitom » Mo, 04.02.2008 15:31

Hey Werner,

wo hast du den die "if" Abfrage her? HSQLDB kennt soetwas nicht. Da gibt es als vordefinierte Funktionen CASEWENN(), IFNULL() oer z.B.COALRSCE(), die wohl alle für deinen Wunsch genutzt werden können - nur ein "If()" kenn ich nicht ;-)

Gruss
Thomas

Prüfung mit IS NULL funktioniert bei mir nicht

von heinz_ketchup » Mo, 04.02.2008 14:59

Hallo,

irgendwie stelle ich mich wieder mal zu dumm an.

Ich habe 2 Tabellen, konten und istdaten. Nun möchte ich prüfen, ob auch für alle Konten die in meinen Buchungsätzen in istdaten verwendet werden, entsprechende Einträge in meiner Kontentabelle vorhanden sind. Die Kontentabelle steuert verschiedene Konteneigenschaften und die Konto-Nr ist der Primärschlüssel.

Wenn ein Konto nicht in der Tabelle konten vorhanden ist, aber in den Buchungssätzen auftaucht, dann möchte ich den Hinweis 'Fehler' bekommen, ansonsten den Hinweis 'ok'.

Meine Abfrage sieht so aus:

Code: Alles auswählen

SELECT
	istdaten.id_ktonr, 
	konten.kto_bezeichnung,
	IF(konten.kto_nr IS NULL, 'Fehler', 'ok')
FROM istdaten, konten where istdaten.id_ktonr=konten.kto_nr
Das funktioniert leider nicht. Ich bekomme nur die Konten angezeigt die auch in der Tabelle konten und istdaten vorhanden sind. Die Konten, die nur in der Tabelle istdaten vorhanden sind, werden nicht ausgegeben und als Fehler markiert.

Ich habe auch schon ausprobiert, ob es was bringt, die Relation "istdaten.id_ktonr=konten.kto_nr" umzudrehen, also "konten.kto_nr=istdaten.id_ktonr". Oder auch die IF-Abfrage zu variieren "IF(stdaten.id_ktonr IS NULL, 'Fehler', 'ok')". Ändert beides nix. :|

Was habe ich in meinem Select falsch gemacht?

fragt Werner

und bedankt sich schon für eure Hilfe!

Nach oben