Collecte de lecteurs selon la date du dernier emprunt

Bonjour,

je cherche à collecter les lecteurs qui ont des prêts en retard et dont le dernier emprunt précède une date donnée (soit les lecteurs qui ont emprunté des livres avant le confinement).
La requête suivante ne retourne rien :
SELECT pret_idempr AS object_id FROM pret WHERE pret_retour < current_date() AND CAST(pret_date AS DATE) < !!date_repere!! GROUP BY pret_idempr
J'utilise CAST() pour convertir pret_date (qui est au format DATETIME, les autres dates sont au format DATE) et date_repere a bien un type date ...

Auriez-vous une piste ?

Bel été,
Guillaume

Réponses

  • Bonjour
    Une broutille ... Mais le genre de broutille qu'on ne remarque pas tout de suite ...
    Il manque des apostrophes !!

    Au lieu de ...
    CAST(pret_date AS DATE) < !!date_repere!!
    il faut écrire
    CAST(pret_date AS DATE) < '!!date_repere!!'

    La syntaxe sans apostrophes n'est possible que si la variable à saisir au clavier est de type numérique.Il faut une paire d'apostrophes pour encadrer les variables de type alphanumérique ou date.

    N.B. Au lieu CAST(pret_date AS DATE, on peut aussi écrire date(pret_date), le résultat sera identique.

    Cordialement,
  • Bonjour,

    Caramba, ces broutilles nous perdront ! Un tout grand merci !

    La requête suivant fonctionne :
    SELECT pret_idempr AS object_id FROM pret WHERE pret_retour < current_date() AND date(pret_date) < '!!date_repere!!' GROUP BY pret_idempr
    Bel été,
    Guillaume

Connectez-vous ou Inscrivez-vous pour répondre.