Thread sehr Komplexe Abfrage: logik Problemchen
(26 answers)
Opened by eisbeer at 2004-02-07 18:03
Noch ne Frage:
Wie gehts sowas: [sql]SELECT tasks.ID, CASE WHEN adressbook.firma IS NOT NULL THEN firma ELSE CONCAT(adressbook.name, ", ", adressbook.vorname) END AS kunde FROM tasks INNER JOIN adressbook ON tasks.KID = adressbook.ID INNER JOIN task_types ON tasks.TID = task_types.TID INNER JOIN task_groups ON tasks.TGID = task_groups.TGID ORDER BY kunde ASC; [/sql] Die einzelnen Aufträge in tasks haben verschiedene KIDs (Kunden-IDs). Mit dem ganzen mischmasch mit den INNER JOINs von oben haben wir ja mittlerweile hinbekommen, das ich mit einem Statement für jeden Auftag nichtnur die KID, sondern auhc gleich den Kundenname und seine Firma mitbekommen, aber jetzt muss in der Tabelle adressbook das Feld "firma" nicht gesetzt sein. Wenn es das doch ist, soll er mir bei der Abfrage die Spalte "kunde" mit dem Inhalt von adressbook.firma befüllen, wenn "firma" NICHT gesetzt ist, will ich statt dessen "kunde" als ein CONCAT von adressbook.name und adressbook.vorname ... Geht denn sowas? Mein Problem ist, das ich meine Abfrage nach den Kunden sortieren muss, und wenn ein Auftrag nicht von einer Firma, sondern von einer privat- Person aufgegeben wurde, muss ich eben z.B. "Mustermann, Max" als "kunden"-Spalte sehn... Klappt aber nicht. Sobald adressbook.firma gesetzt ist, ist die Spalte "kunde" brav = "firma", aber wenn firma nicht gesetzt ist, ist "kunde" leer. :rock: Verlange ich SQL zuviel ab oder versteh ich es blos nicht !? Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
|