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) :

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'
Alors que je souhaite avoir :

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...