Ich schreibe ein CMS für einen Kunden, der eine Sortierung seiner Daten durch bevorstehende Aktivitäten wünscht.SQL Listet Daten aus einer Tabelle abhängig von Daten aus einer anderen Tabelle
Es gibt eine Tabelle mit dem Namen customers
, die alle Kunden enthält, die durch die Spalte cust_id
identifiziert werden.
Es gibt auch eine Tabelle mit dem Namen activities
, in der es eine Spalte cust_id
gibt, die mit einem Kunden verknüpft werden soll, und ein Feld date_last_done
, das angibt, wann die Aufgabe abgeschlossen wurde. Der Kunde kann viele Aktivitäten auf seinem Konto haben.
Ich möchte alle Kunden abholen, wo die letzte Aktivität (date_last_done
desc) vor mehr als 11 Monaten abgeschlossen wurde.
Hier ist mein Versuch:
SELECT
*
FROM
customers
INNER JOIN
activities
ON
activities.cust_id = customers.cust_id
WHERE
(SELECT
date_last_done
FROM
activities
WHERE
cust_id = ???
ORDER BY
date_last_done
DESC)
< date() - 11months
Wie würde ich meine Abfrage bearbeiten, dies zu tun?
Fantastische Antwort - Ich habe diese Logik nicht zuvor verwendet. Es gibt ein Problem mit einer fehlenden Klammer kurz vor dem 'AS a ON c.cust_id'. Außerdem wird ein Fehler ausgegeben, der besagt, dass 'FUNCTION db.MAX()' nicht existiert. –
Fixed die fehlende Klammer, nicht sicher über den Fehler, obwohl. Stellen Sie sicher, dass hinter 'MAX' kein Leerzeichen steht. – Barmar
Spot auf. PHPMyAdmin formatierte das SQL und fügte dort eine neue Zeile hinzu. Danke vielmals! –