Leere Felder eines Datensatzes zählen

orgmac

Grünschnabel
Hallo,

ich weiß nicht, ob dieses Problem nur mit SQL-Kenntnissen lösbar ist, deswegen schreib ich gleich dazu, daß es sich um den Einsatz in einer PHP Anwendung handelt.

Ich möchte die Anzahl der (nicht-)ausgefüllten Felder eines Datensatzes innerhalb einer Tabelle zählen. Das erklärt sich am besten an einem kurzen Beispiel:

Die Tabelle für eine Fahrzeugliste hat meinetwegen 10 Spalten, in welche die Eigenschaften des Fahrzeugs eingetragen werden (Baujahr, Fahrgestellnummer etc.pp.). Wurden für Fahrzeug-ID '1' nur 6 dieser Datenfelder ausgefüllt, möchte ich ausgegeben haben, daß 4 Felder für diese Fahrzeug-ID noch fehlen.

Danke und allen ein schönes Wochenende :)
 
Zuletzt bearbeitet:
Hi,

also wie das mit php genau geht weiß ich nicht. Das Query dazu könnte aber so sein
kein_eintrag entspricht dann der summe der attribute eines datensatzes die IS NULL hatten:

Code:
 SELECT id, bj+fn+m kein_eintrag
 FROM
 (
    SELECT id, Count (CASE WHEN Baujahr IS NULL THEN '1' END ) bj 
    ,  Count (CASE WHEN Fahrgestellnummer IS NULL THEN '1' END ) fn
    ,  Count (CASE WHEN Margke IS NULL THEN '1' END ) m
    FROM t_fahrzeuge
    GROUP BY id
 )
 
Hallo,

ich denke, das hier sollte reichen:
Code:
SELECT t.id, t.bj+t.fn+t.m anzahl_leere_felder
  FROM ( SELECT id
              , CASE WHEN f.baujahr IS NULL THEN 1 ELSE 0 END bj
              , CASE WHEN f.fahrgestellnr IS NULL THEN 1 ELSE 0 END fn
              , CASE WHEN f.marke IS NULL THEN 1 ELSE 0 END m
           FROM fahrzeuge f
       ) t
Grüße Berit.
 
Zurück