L'erreur 1054 est due au fait que la colonne n'existe pas dans la ou les tables définies dans le FROM
clause. De plus, le WHERE
La clause n'est pas utilisée pour définir une variable ou un alias de colonne - c'est pour filtrer les lignes renvoyées.
Utilisez DATEDIFF :
SELECT t.member_id,
DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
FROM MEMBERSHIP t
Le LEAST
renverra la plus basse des deux dates, elle utilisera donc la date actuelle si la date d'échéance est dans le futur. Vous pouvez utiliser le GREATEST
fonction si vous voulez que cela soit inversé.