Bonjour Forum,
J'ai un problème avec l'utilisation du "%"
je suis dans excel et j'effectue une requête dans un base SQL
Au départ j'ai une liste de contrats (Nombre de contrats variable)
Ensuite j'ai 2 autres critères, le secteur et le département
Mon but est donc d’obtenir le nombre d'heures d'un département et secteur précis pour différents projets.
Je me suis tourné vers deux alternatives,
1)En premier lieu l'opérateur "IN", je pouvais donc avec une boucle, inclure le nombre de projets que je désirais, le problème est que certain NoProjet contiennent des extras, donc le contrat original est par exemple AB6003, et son extra AB6003-1.
Alors 1er question puis-je inclure l'opérateur LIKE dans l'opérateur "IN" du tu
WHERE IN LIKE ('AB6003%','RR1231%',..,n) and departement=2 and secteur=3
2) J'utilise le "OR", j'utilise encore un boucle pour ajouter des critère OR
EX:
1 2 3 4 5 6 7 8 9 10 11
|
strSQlHrsTech = "SELECT O.NoProjet, SUM(O.Hrstotal) as HrsTotal FROM operation O, employe E WHERE ("
critere = ""
For i = 4 To 9
critere = critere & "(O.NoProjet LIKE '" & Cells(i, 1).Value & "%') OR "
Next i
strSQlHrsTech = strSQlHrsTech & critere
strSQlHrsTech = Left(strSQlHrsTech, Len(strSQlHrsTech) - 3)
strSQlHrsTech = strSQlHrsTech & ") AND E.GrandSecteur=2 AND O.Departement=" & noprod & " AND E.NoUtilisateur = O.NoUtilisateur GROUP BY NoProjet" |
Ce qui donne cette chaîne
"SELECT O.NoProjet, SUM(O.Hrstotal) as HrsTotal FROM operation O, employe E WHERE ((O.NoProjet LIKE 'AB6003%') OR (O.NoProjet LIKE 'AB4938%') OR (O.NoProjet LIKE 'US5938%') OR (O.NoProjet LIKE 'AB5699%')) AND E.GrandSecteur=2 AND O.Departement=" & noprod & " AND E.NoUtilisateur = O.NoUtilisateur GROUP BY NoProjet"
ma requête fonctionne bien c'est juste qu'elle n'inclut pas les extra.
Pouvez-vous m'indiquer comment faire, ça fait un bail que j'essaie et je n'arrive a rien!!
merci d'avance
Partager