Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sous requêtes de type LIKE ?

4 réponses
Avatar
Charlie
Je souhaite cr=E9er une sous-requ=EAte access qui filtre les=20
r=E9sultats de la requ=EAte principale pour tous les comptes=20
qui commencent par les racines=20
suivantes :6022;6032;6061;6062;86032;86062;86940...

Avec le "IN", je sais le faire en selectionnant les=20
valeurs exactes des comptes :
IN (SELECT Tbl_Comptes_CG.[Compte CG]
FROM Tbl_Comptes_CG;)

Comment faire en sorte d'appliquer un "comme *" pour=20
cette liste de compte.
Merci pour vos astuces.

Charlie

4 réponses

Avatar
pascal
Salut tu peux utiliser la fonction "mid" dans ta requete ,
du type
mid(CG.[Compte CG],1,4) in ('6022','6032') or
mid(CG.[Compte CG],1,5) in ('86032','86062') ...

A+

-----Message d'origine-----
Je souhaite créer une sous-requête access qui filtre les
résultats de la requête principale pour tous les comptes
qui commencent par les racines
suivantes :6022;6032;6061;6062;86032;86062;86940...

Avec le "IN", je sais le faire en selectionnant les
valeurs exactes des comptes :
IN (SELECT Tbl_Comptes_CG.[Compte CG]
FROM Tbl_Comptes_CG;)

Comment faire en sorte d'appliquer un "comme *" pour
cette liste de compte.
Merci pour vos astuces.

Charlie



.



Avatar
Charlie
Merci,
Je veux surtout éviter de saisir les valeurs de compte
(50 environ). J'ai de nombreuses requêtes à effectuer
avec à chaque fois une liste importante de comptes
différents comme critère. Les listes de comptes à retenir
comme critère sont stockées dans des tables.

Table A : table qui contient les enregistrements
comptables avec les n° de compte.
Année; Mois, n° de compte, Montant...

Table B : table qui liste les n° de compte (Racine) à
retenir comme critère de sélection
n° de compte

Littéralement, la requête que je souhaite effectuer est
la suivante :

- afficher uniquement les enregistrements de table A pour
laquelle les n° de compte COMMENCENT par ceux de la table
B.

En clair, je souhaite une solution qui m'évite de saisir
en DUR, surtout si les critères doivent changer:

"Comme "6022*" Ou Comme "6032*" Ou Comme "6061*" Ou
Comme "6062*" Ou Comme "86032*" Ou Comme "86062*" Ou
Comme "86940*"

C'est pourquoi, j'ai pensé à une solution de type sous-
requête. Mais le IN (SELECT...) ne prend pas en compte la
notion de COMMENCE PAR.

Merci d'aider un désespéré.
-----Message d'origine-----
Salut tu peux utiliser la fonction "mid" dans ta
requete ,

du type
mid(CG.[Compte CG],1,4) in ('6022','6032') or
mid(CG.[Compte CG],1,5) in ('86032','86062') ...

A+

-----Message d'origine-----
Je souhaite créer une sous-requête access qui filtre
les


résultats de la requête principale pour tous les
comptes


qui commencent par les racines
suivantes :6022;6032;6061;6062;86032;86062;86940...

Avec le "IN", je sais le faire en selectionnant les
valeurs exactes des comptes :
IN (SELECT Tbl_Comptes_CG.[Compte CG]
FROM Tbl_Comptes_CG;)

Comment faire en sorte d'appliquer un "comme *" pour
cette liste de compte.
Merci pour vos astuces.

Charlie



.

.





Avatar
Rv
Salut,

SELECT A.NumCompte
FROM A, B
WHERE A.NumCompte Like B.numcompte & '*';

C'est ça?

A+

Rv

"Charlie" a écrit dans le message de
news:2e45301c46b2d$bada1010$
Merci,
Je veux surtout éviter de saisir les valeurs de compte
(50 environ). J'ai de nombreuses requêtes à effectuer
avec à chaque fois une liste importante de comptes
différents comme critère. Les listes de comptes à retenir
comme critère sont stockées dans des tables.

Table A : table qui contient les enregistrements
comptables avec les n° de compte.
Année; Mois, n° de compte, Montant...

Table B : table qui liste les n° de compte (Racine) à
retenir comme critère de sélection
n° de compte

Littéralement, la requête que je souhaite effectuer est
la suivante :

- afficher uniquement les enregistrements de table A pour
laquelle les n° de compte COMMENCENT par ceux de la table
B.

En clair, je souhaite une solution qui m'évite de saisir
en DUR, surtout si les critères doivent changer:

"Comme "6022*" Ou Comme "6032*" Ou Comme "6061*" Ou
Comme "6062*" Ou Comme "86032*" Ou Comme "86062*" Ou
Comme "86940*"

C'est pourquoi, j'ai pensé à une solution de type sous-
requête. Mais le IN (SELECT...) ne prend pas en compte la
notion de COMMENCE PAR.

Merci d'aider un désespéré.
-----Message d'origine-----
Salut tu peux utiliser la fonction "mid" dans ta
requete ,

du type
mid(CG.[Compte CG],1,4) in ('6022','6032') or
mid(CG.[Compte CG],1,5) in ('86032','86062') ...

A+

-----Message d'origine-----
Je souhaite créer une sous-requête access qui filtre
les


résultats de la requête principale pour tous les
comptes


qui commencent par les racines
suivantes :6022;6032;6061;6062;86032;86062;86940...

Avec le "IN", je sais le faire en selectionnant les
valeurs exactes des comptes :
IN (SELECT Tbl_Comptes_CG.[Compte CG]
FROM Tbl_Comptes_CG;)

Comment faire en sorte d'appliquer un "comme *" pour
cette liste de compte.
Merci pour vos astuces.

Charlie



.

.





Avatar
Charlie
Comment l'intégrer en sous requête ?
-----Message d'origine-----
Salut,

SELECT A.NumCompte
FROM A, B
WHERE A.NumCompte Like B.numcompte & '*';

C'est ça?

A+

Rv

"Charlie" a écrit
dans le message de

news:2e45301c46b2d$bada1010$
Merci,
Je veux surtout éviter de saisir les valeurs de compte
(50 environ). J'ai de nombreuses requêtes à effectuer
avec à chaque fois une liste importante de comptes
différents comme critère. Les listes de comptes à retenir
comme critère sont stockées dans des tables.

Table A : table qui contient les enregistrements
comptables avec les n° de compte.
Année; Mois, n° de compte, Montant...

Table B : table qui liste les n° de compte (Racine) à
retenir comme critère de sélection
n° de compte

Littéralement, la requête que je souhaite effectuer est
la suivante :

- afficher uniquement les enregistrements de table A pour
laquelle les n° de compte COMMENCENT par ceux de la table
B.

En clair, je souhaite une solution qui m'évite de saisir
en DUR, surtout si les critères doivent changer:

"Comme "6022*" Ou Comme "6032*" Ou Comme "6061*" Ou
Comme "6062*" Ou Comme "86032*" Ou Comme "86062*" Ou
Comme "86940*"

C'est pourquoi, j'ai pensé à une solution de type sous-
requête. Mais le IN (SELECT...) ne prend pas en compte la
notion de COMMENCE PAR.

Merci d'aider un désespéré.
-----Message d'origine-----
Salut tu peux utiliser la fonction "mid" dans ta
requete ,

du type
mid(CG.[Compte CG],1,4) in ('6022','6032') or
mid(CG.[Compte CG],1,5) in ('86032','86062') ...

A+

-----Message d'origine-----
Je souhaite créer une sous-requête access qui filtre
les


résultats de la requête principale pour tous les
comptes


qui commencent par les racines
suivantes :6022;6032;6061;6062;86032;86062;86940...

Avec le "IN", je sais le faire en selectionnant les
valeurs exactes des comptes :
IN (SELECT Tbl_Comptes_CG.[Compte CG]
FROM Tbl_Comptes_CG;)

Comment faire en sorte d'appliquer un "comme *" pour
cette liste de compte.
Merci pour vos astuces.

Charlie



.

.





.