leere Spalten ausblenden

claudine

Grünschnabel
Hallo,

ich möchte eine sql-abfrage erstellen, die mir nur die spalten ausgibt, in der irgendein datensatz einen wert drin stehen hat.
ich mach das ganze in asp.
und so siehts zur zeit aus
Code:
[...]
SET rs = conn.Execute("SELECT * FROM " & tabelle & where_klausel)
FOR i = 0 TO rs.Fields.Count - 1
if rs.fields(i).name <> "dateinr" then
SET rs_anzahl = conn.Execute("SELECT COUNT ([" & rs.fields(i).name & "]) AS anzahl FROM " & tabelle& where_klausel)
IF rs_anzahl.fields("anzahl") > 0 THEN
 response.write "<td>" & rs.fields(i).name & "</td>"
 felder = felder & "[" & rs.fields(i).name & "],"
END IF
rs_anzahl.Close
end if
NEXT
SET rs = conn.Execute("SELECT " & felder & " FROM " & tabelle& where_klausel)
[...]
dh ich mach ne abfrage auf die tabelle. nehme mir jede einzelne spalte und mach darauf einen count. wenn der größer 0 ist, sind werte in der spalte und zeige den spaltennamen an und wenn keine werte drin sind, zeige ich ihn nicht an.
dann mach ich nochmal ne abfrage mit den feldern auf die tabelle, um den inhalt dieser spalten anzuzeigen

das ist natürlich sehr zeitaufwändig, da meine tabellen ca 20 spalten haben.
geht das auch einfach und schneller? zb indem ich nur die spalten anzeige, wo irgendwo was drin steht?

danke schon mal...
schöne grüße,
claudi
 
Warum wählst du sie einfach nicht der Abfrage aus? Statt * schreibst du jeden Spaltennamen hin wo überhaupt etwas drinne steht!


MfG Radhad
 
Logo, weil sie natürlich nich weiss, ob was drin steht!

Aber Du kannst doch einfach alles in Deinem Select abfragen. Und bei der Ausgabe prüfst Du dann, ob was drin steht. Wenn der Wert leer ist, gibst Du ihn eben nich aus.
 
Zurück