Грешката 1054 е, защото колоната не съществува в таблиците, дефинирани в FROM
клауза. Освен това WHERE
клаузата не се използва за задаване на променлива или псевдоним на колона - тя е за филтриране на върнатите редове.
Използвайте DATEDIFF :
SELECT t.member_id,
DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
FROM MEMBERSHIP t
НАЙ-МАЛКО
функцията ще върне най-ниската от двете дати, така че ще използва текущата дата, ако крайната дата е в бъдеще. Можете да използвате GREATEST
функция, ако искате това да се обърне.