Manny: If Abfrage an eine Datenbank

Ahoi,

wie man es immer so schön in der Uni lernt: Junge! Du darfst das alles nicht erst beim Endprogramm berechnen, sondern in der SQL Datenbank muss alles gelöst sein. Ist schneller!

Ja. Nun sitze ich vor SQL und hab da eine Frage :)

  
SELECT a.*, DATE_FORMAT(`startDate`, '%d.%m.%Y') AS `startDate_Form`, DATE_FORMAT(`postDate`, '%d.%m.%Y') AS `postDate_Form`  
  
FROM artikel_kategorie AS k, aktuelles_artikel AS a  
  
WHERE k.name = 'Angebot' AND k.id = a.artikel_kategorie_id  
  
ORDER BY IF (startDate_Form < NOW(), startDate_Form desc, id), id  

Ich möchte, dass sofern das startDate bereits abgelaufen ist, dass es dann einfach nach der id einsortiert wird. Wenn startDate erst noch kommt, dann möchte ich, dass das ganze oben an erster Stelle steht, aber nach der id als 2. Kriterium sortiert wird.

Kann mir da jemand helfen? :)

mfg Manny

  1. Stand kurz vor der Lösung. Hatte einen Fehler im IF Statement.

    Es hätte wie folgt lauten müssen:

      
    SELECT a.*, DATE_FORMAT(`startDate`, '%d.%m.%Y') AS `startDate_Form`, DATE_FORMAT(`postDate`, '%d.%m.%Y') AS `postDate_Form`  
      
    FROM artikel_kategorie AS k, aktuelles_artikel AS a  
      
    WHERE k.name = 'Angebot' AND k.id = a.artikel_kategorie_id  
      
    ORDER BY IF (`startDate_Form` < NOW(), 0, a.id)  
    
    

    Hoffe es hilft irgendwann mal jemandem ;)

    mfg Manny