membership
table
The 1054 error is because the column does not exist in the table(s) defined in the FROM
clause. Additionally, the WHERE
clause is not used to set a variable, or column alias -- it's for filtering rows returned.
Use DATEDIFF:
SELECT t.member_id,
DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
FROM MEMBERSHIP t
The LEAST function will return the lowest of the two dates, so it will use the current date if the due date is in the future. You can use the GREATEST
function if you want that reversed.