Benny: SQL Abfrage

Beitrag lesen

Also doch kein NULLIF() sondern das IF()-Konstrukt verwenden.

Heute habe ich wieder etwas Luft, um mich damit zu beschäftigen.

Also noch mal zusammengefasst hier mein Statement:

  
SELECT  
  FROM_UNIXTIME(contract_date) Vertragsbeginn,  
  IF(item_status = 1, "Warte auf Daten", NULL) Status  
FROM flyspray_tasks  
WHERE is_closed = 0  
GROUP BY contract_date  

Die Ausgabe sieht folgendermaßen aus:

  
Vertragsbeginn 	     Status  
1970-01-01 01:00:00 	NULL  
2009-11-01 00:00:00 	NULL  
2009-12-01 00:00:00 	NULL  
2009-12-15 00:00:00 	NULL  
2009-12-20 00:00:00 	NULL  
2010-01-01 00:00:00 	NULL  
2010-01-02 00:00:00 	NULL  
2010-01-03 00:00:00 	NULL  
2010-01-04 00:00:00 	NULL  
2010-02-01 00:00:00 	NULL  
2010-02-15 00:00:00 	NULL  
2010-02-20 00:00:00 	NULL  
2010-03-01 00:00:00 	NULL  
2010-03-15 00:00:00 	NULL  
2010-04-01 00:00:00 	NULL  
2010-05-01 00:00:00 	NULL  
2010-06-01 00:00:00 	NULL  
2010-07-01 00:00:00 	NULL  
2010-09-01 00:00:00 	NULL  
2010-12-01 00:00:00 	NULL  

Also was auf jeden Fall passt, ist die Ausgabe des Vertragsbeginns (wobei hier ein nice to have wäre, wenn die Uhrzeit wegfällt!).

Laut dedlfix soll eben das IF-Konstrukt benutzt werden, jedoch sieht man an der Ausgabe, dass hier etwas falsch läuft. Muss ich nicht hier ein

  
...  
COUNT(IF(item_status=1, "Warte auf Daten", IF(....)))  
...  

Konstrukt verwenden, d. h. alle Status in verschachtelte IF Bedingungen, die unter einem COUNT laufen?