Sortierspalte von Kriterium abhängig machen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierspalte von Kriterium abhängig machen

    Vielleicht eine blöde Frage, aber ich finde grad echt keine Lösung.
    Ich möchte eine Tabelle mit Fahrzeugen nach Preis sortieren.
    Manche Fahrzeuge stehen zum Verkauf. Dann soll als Sortierspalte "kaufpreis" herangezogen werden.
    Manche sind Leasingangebote. Dann soll nach "leasingrate" sortiert werden.
    Allerdings gemischt in der gleichen Abfrage!

    Bisher habe ich mir mit ORDER BY GREATER(kaufpreis, leasingrate) beholfen. Jetzt ist der Kundenwunsch aber, auch bei Leasingangeboten einen Kaufpreis einzugeben, um bei Bedarf schnell umschalten zu können - da dieser stets größer ist als die Leasingrate, wird natürlich immer nach diesem Sortiert.

    Gibt es eine Möglichkeit, eine Spalte abhängig von einer Bedingung zu sortieren? Also "Wenn modus = kauf nimm Kaufpreis; wenn modus = leasing nimm Leasingrate". IF() greift an dieser Stelle nicht, weil nicht als Sortierkriterium anwendbar. Etwas vergleichbares finde ich in der mySQL-Funktionsliste gerade nicht.

    Jemand eine Idee?

  • #2
    Zitat von pekka Beitrag anzeigen
    Also "Wenn modus = kauf nimm Kaufpreis; wenn modus = leasing nimm Leasingrate". IF() greift an dieser Stelle nicht, weil nicht als Sortierkriterium anwendbar.
    Wieso nicht?

    ORDER BY IF(modus='kauf', kaufpreis, leasingrate)

    IF müsste m.W. auch an der Stelle einsetzbar sein.
    Und sonst halt vorher in der Spaltenliste damit eine Pseudospalte erzeugen,
    SELECT ..., IF(...) as Sortierpreis FROM ...
    ORDER BY Sortierpreis
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      Wieso nicht?

      ORDER BY IF(modus='kauf', kaufpreis, leasingrate)

      IF müsste m.W. auch an der Stelle einsetzbar sein.
      Und sonst halt vorher in der Spaltenliste damit eine Pseudospalte erzeugen,
      SELECT ..., IF(...) as Sortierpreis FROM ...
      ORDER BY Sortierpreis
      Wunderbar, das klappt! Hatte IF() vorhin falsch eingesetzt. Danke!

      Kommentar

      Lädt...
      X