Błąd 1054 jest spowodowany tym, że kolumna nie istnieje w tabelach zdefiniowanych w FROM
klauzula. Dodatkowo WHERE
Klauzula nie jest używana do ustawiania zmiennej ani aliasu kolumny — służy do filtrowania zwracanych wierszy.
Użyj DATEDIFF :
SELECT t.member_id,
DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
FROM MEMBERSHIP t
NAJMNIEJ
funkcja zwróci najniższą z dwóch dat, więc użyje daty bieżącej, jeśli termin płatności przypada w przyszłości. Możesz użyć GREATEST
funkcja, jeśli chcesz to odwrócić.