Hallo Forum
Ich arbeite mit mysql. Leider funktioniert ein relativ einfacher SQL nicht und ich sehe den Fehler nicht.
im nachfolgenden Beispiel zähle ich die Buchstaben und versuche in der Ausgabe im Feld Nachname die entsprechenden Daten anzuzeigen.
Leider zeigt er nur die Daten im Feld Nachname welche im Datensatz beides Nachname und Firmenname enthalten
Versuch 2 mit Case
Auch dieser SQL zeigt ein identisches Resultat.
Wenn der Nachname oder der Firmanname fehlt ist das Feld Nachanme leer und ich sehe und verstehe nicht warum.
Sieht jemand den Fehler?
Ich arbeite mit mysql. Leider funktioniert ein relativ einfacher SQL nicht und ich sehe den Fehler nicht.
im nachfolgenden Beispiel zähle ich die Buchstaben und versuche in der Ausgabe im Feld Nachname die entsprechenden Daten anzuzeigen.
Leider zeigt er nur die Daten im Feld Nachname welche im Datensatz beides Nachname und Firmenname enthalten
HTML-Code:
SELECT a.IDAdr, if(CHAR_LENGTH(b.Firmenname)=0, if(CHAR_LENGTH(b.Nachname)=0, "ohne Name", b.Nachname), if(CHAR_LENGTH(b.Nachname)=0, b.Firmenname, concat(b.Firmenname," ",b.Nachname))) as Nachname, b.Vorname, if(CHAR_LENGTH(c.Geburt)>0,DATE_FORMAT(c.Geburt, '%m.%d.%Y'),"") as geb FROM `TLastAdr` a LEFT JOIN TAdressen b ON a.IDAdr=b.Ad_id LEFT JOIN TKunde c ON b.Ad_id=c.Ad_id
HTML-Code:
SELECT a.IDAdr, CASE WHEN b.Firmenname = '' THEN CASE WHEN b.Nachname = '' THEN "ohne Name" ELSE b.Nachname END ELSE CASE WHEN b.Nachname = '' THEN b.Firmenname ELSE CONCAT(b.Firmenname," + ",b.Nachname) END END as Nachname, b.Vorname, CASE WHEN c.Geburt <> '' THEN DATE_FORMAT(c.Geburt, '%m.%d.%Y') ELSE "kein Gebutstag" END as geb FROM `TLastAdr` a LEFT JOIN TAdressen b ON a.IDAdr=b.Ad_id LEFT JOIN TKunde c ON b.Ad_id=c.Ad_id
Wenn der Nachname oder der Firmanname fehlt ist das Feld Nachanme leer und ich sehe und verstehe nicht warum.
Sieht jemand den Fehler?
Kommentar