Bonjour à tous
Je fais appel aux bonnes âmes pour m'aider dans l'écriture d'une requête.
Je fais face à 2 problématiques :
1/ Je souhaite vérifier si les données d'une listes sont présentes dans les valeurs d'une table et retourner dans tous les cas une valeur par exemple 1 si vrai et 0 si faux (ou renvoyer la valeur recherchée si elle est présente et une ligne vide si valeur inconnue). Hors, malgré mes tentatives, je n'arrive qu'à renvoyer les valeurs vrais.
Dans mon exemple, je cherche par exemple, si les 3 CODEINSEE sont dans ma table : 2 oui, 1 non => j'attends en retour 3 lignes 1,1,0 (ou les 2 codes insee OK et une ligne vide pour le code insee KO) ; avec code insee entre cotes = texte.
J'ai essayé cela mais sans succès : cela renvoie uniquement les valeurs trouvées (2 sur 3)
Avec ce code, j'ai un message erreur sur EXISTS => mal placé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Select case when CODEINSEE is not null Then 1 Else 0 End as CODE_INSEE From MATABLE Where CODEINSEE in ( 'XXXXXXXXXXXXX', 'XXXXXXXXXXXXX', 'XXXXXXXXXXXXX')
2/ Avec cette requête SQL, je souhaite l' embarquer dans du VBA pour l'automatiser. Autant je sais comment en VBA gérer/récupérer 1 donnée depuis un fichier excel dans une variable insérée dans le code SQL, autant je ne sais pas comment gérer X données (les codes insee) dont le nombre peut varier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Select Case When Exists (Select CODEINSEE From MATABLE Where CODEINSEE in ( 'XXXXXXXXXXXXX', 'XXXXXXXXXXXXX', 'XXXXXXXXXXXXX')) Then 1 Else 0 End
Je vous remercie bien par avance de votre aide !
A toute fin utile, je travaille avec winsql sur une bdd IBM DB2.
Partager