Bonjour,
je travaille sur une select qui s'appuie sur des dates, les compare à la date du jour et les classe selon différentes possibilités (CASE) :
- inférieur au jour actuel
- jour actuel
- j+1
- j+2
- j+3
- j+4
- j+5
- entre 5 et 10 jours
- supérieur à 10 jours
Mon problème est pour le cas de figure entre 5 et 10 jours, je n'arrive pas à comparer par rapport à 2 dates calculées selon la date du jour. Je voudrais cumuler le critères j+5 et j<10 mais ce ne sont pas des booléens. J'ai cherché du coté de BETWEEN mais sans succès, surement un pb de syntaxe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 SELECT CASE WHEN CAST (date_rec_min AS DATE) < CAST(NOW() AS DATE) THEN 'DAR valide' WHEN CAST (date_rec_min AS DATE) = CAST(NOW() AS DATE) THEN 'Jour actuel' WHEN CAST (date_rec_min AS DATE) = CAST(NOW()+INTERVAL '1' DAY AS DATE) THEN 'J+1' WHEN CAST (date_rec_min AS DATE) = CAST(NOW()+INTERVAL '2' DAY AS DATE) THEN 'J+2' WHEN CAST (date_rec_min AS DATE) = CAST(NOW()+INTERVAL '3' DAY AS DATE) THEN 'J+3' WHEN CAST (date_rec_min AS DATE) = CAST(NOW()+INTERVAL '4' DAY AS DATE) THEN 'J+4' WHEN CAST (date_rec_min AS DATE) = CAST(NOW()+INTERVAL '5' DAY AS DATE) THEN 'J+5' WHEN CAST (date_rec_min AS DATE) > CAST(NOW()+INTERVAL '5' DAY AS DATE) THEN 'Entre 5 et 10' WHEN date_rec_min IS NOT NULL AND CAST(date_rec_min AS DATE) > CAST(NOW()+INTERVAL '10' DAY AS DATE) THEN 'J>10' ELSE 'null' END, CAST(date_rec_min AS DATE) AS "Date récolte minimale", CAST(NOW() AS DATE) AS "Date du jour", exp_raisonsociale AS "Raison sociale", iep_par_nom AS "Nom parcelle", iep_par_varcep AS "Cepage", iep_par_numero AS "Numero parcelle", iep_idparcelleculturale AS "Identifiant parcelle" FROM parcelles_2015 WHERE destination='Thongue et Peyne' AND date_rec_min IS NOT NULL ORDER BY CAST(date_rec_min AS DATE) DESC, exp_raisonsociale
Quelqu'un à déjà résolu cette question d'intervalle entre 2 dates ?
Merci d'avance.
Partager