1054-felet beror på att kolumnen inte finns i tabellen/tabellerna som definieras i FROM
klausul. Dessutom, WHERE
sats används inte för att ställa in en variabel eller kolumnalias -- det är för att filtrera rader som returneras.
Använd DATEDIFF :
SELECT t.member_id,
DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
FROM MEMBERSHIP t
MINST
funktion returnerar det lägsta av de två datumen, så det kommer att använda det aktuella datumet om förfallodatumet ligger i framtiden. Du kan använda GREATEST
funktion om du vill ha det omvänt.