Hallo,
fast richtig. Es wird aber kein Datum eingetragen sondern nur der Wert 0 oder 1.
Wie kann ich die id der Zeile abfragen, in der mindestens eines der Felder _01_01 bis _31_12 nicht ller ist bzw. den Wert 1 hat?
wie frage ich ab, ob mindestens eines der Felder nicht leer ist?
-- Wenn alle Felder leer sind, das heißt den speziellen Wert NULL enthalten,
-- dann liefert COALESCE() mit allen Spalten als Argument den Wert NULL zurück.
-- ISNULL() liefert somit genau dann True zurück, wenn alle Spalten leer sind.
-- NOT ISNULL liefert daher True zurück, wenn in mindestens einer Spalte ein
-- von NULL verschiedener Wert steht.
SELECT
[link:http://dev.mysql.com/doc/refman/5.1/en/logical-operators.html#operator_not@title=NOT] [link:http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#function_isnull@title=ISNULL](
[link:http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#function_coalesce@title= COALESCE](
_01_01,
_01_02,
...
_31_12
)
) nicht_alle_leer
Ob eines der Felder den Wert 1 hat kannst Du analog mit GREATEST() in Kombination mit über Deine Spaltenliste mit Anwendung der Funktion COALESCE() auf jede einzelne Spalte ermitteln.
Ach ja: sinnvoll ist das trotzdem nicht. Sinnvoll ist - wie Dir mehrfach nahegelegt - ein anderes Tabellendesign.
Sei ein Superheld und springe über Deinen Schatten!
Freundliche Grüße
Vinzenz