Bonjour à vous,
Dans ma base j'ai un champs "date_in" pour les visites d'entreprises. Voici comment cela se présente :
{date_1ère_visite}|{nb_visites}|{SI > 1 visite ALORS date_dernière_visite}
1 visite = 20131207|1
2 visites = 20131207|2|20140124
...
N visites = 20131207|N|20140205
Je souhaite faire une requête qui puisse extraire toutes les entreprises de type "client" que je n'ai pas visité depuis plus de 6 mois
C'est là que cela se complique... je souhaite donc tester quand {date_actuelle} - {date_dernière_visite} >= 180 sachant que {date_dernière_visite} peut aussi être la 1ère (si 1 seule) donc à droite ou à gauche du champs date_in
J'essaye déjà de mettre dans une colonne les dates en gras de ci-dessus.
La requête ci-dessous me renvoie "date_in" dans le champs date_dernière_visite créé pour l'occasion (donc qqch cloche) :
Alors que je souhaite avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT CASE WHEN (CHAR_LENGTH( 'date_in' ) >12) THEN RIGHT( 'date_in', 8 ) ELSE LEFT( 'date_in', 8 ) END "date_dernière_visite" FROM entreprises WHERE commercial = 'moi' AND type = 'Client'
date_dernière_visite
20131207
20140124
20140205
...
Bien-sûr dans la finalité de faire le test :
{date_actuelle} - {date_dernière_visite} >= 180
Suis dans les choux ou pas loin ? Merci de ne pas m'envoyer de scud dans la tronche, je suis un développeur "amateur"
Surtout merci d'avance pour votre aide
Guillaume
NB : oui je sais, j'aurais dû créer plusieurs champs distincts dans ma base, cela aurait facilité les choses...
Partager