Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 15h48   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Par défaut Requête Sélection regroupement cas d'école

J'ai quitté les bancs d'école il y a qq années, je devrais y retourner!
Merci de votre aide sur la requête SQl ACCESS 2007 sur le besoin suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
Colonne1 Colonne2 Colonne3 Colonne4 Colonne5
1 A 1 az ze
2 B 6 az zz
3 D 2 za s
4 D 2 za z 
5 C 9 za rz 
6 E 2 az z 
7 J 1 az  gr
8 J 2 zr lr
9 J 0 kr re
10 L 0 er er
Retourner toutes les données de la 1ère ligne dont la valeur de la Colonne2 contient exclusivement la valeur =2, ici lignes solution n°4 et n°7. Merci d'avance de votre support.
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 21h34   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonsoir,

Même avec la réponse, je n'ai toujours pas compris la question.
Pas même compris ce que tu appelles 1ère ligne et colonne2.
Tu annonces 5 colonnes et la colonne2 contient uniquement des lettres !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 23h00   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Col1 - Col2 - Col3 - Col4 - Col5
Code :
1
2
3
4
5
6
7
8
9
10
11
l1  - A - 1 - az - ze
l2  - B - 6 - az - zz
l3  - D - 2 - za - ez
l4  - D - 2 - za - ze
l5  - C - 9 - za - rz
l6  - E - 2 - az - ze 
l7  - J - 1 - az - gr
l8  - J - 2 - zr - lr
l9  - J - 0 - kr - re
l10 - L - 0 - er - er
J'espère que la formalisation ci-dessus est plus explicite.
Algo : 1) regrouper les lignes dont la valeur sur la colonne2 est identique (A, B, D,..) 2)Parmi ces regroupements sélectionner ceux qui possèdent toutes les valeurs de la colonne 3 =2 3)Retourner dans ce cas une ligne. S'il existe un regroupement avec une valeur <> 2 sur la colonne 3 il n'existe pas de résultat. Ici pour la ligne L3 ou L4 je dois conserver une seule ligne.
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 23h18   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 446
Points : 4 446
bonsoir teuzadur, Claude

Citation:
Envoyé par teuzadur Voir le message
Ici pour la ligne L3 ou L4 je dois conserver une seule ligne.
oui mais laquelle ? L3 ou L4 ?

Code sql :
1
2
3
l3  - D - 2 - za - ez
l4  - D - 2 - za - ze
l5  - D - 9 - za - rz

dans ce cas la requête ne retourne rien car dans le regroupement "D" il y a une ligne avec une valeur <>2, c'est bien ça ?
f-leb est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 23h37   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
la première

oui tout à fait f-leb.
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h59   #6
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
salut ClaudeLELOUP, f-leb et bienvenu teuzadur,

Citation:
Envoyé par teuzadur
J'ai quitté les bancs d'école il y a qq années, je devrais y retourner!
laisse ces p'vres gens tranquille, ils ont eu assez de mal à se débarrasser de toi

je me permets prof. f-leb d'instruire en ton absence:
Code SQL :
1
2
3
4
5
6
7
8
9
10
SELECT
   t1.col1,
   first(t1.col2) AS col2,
   first(t1.col3) AS col3,
   first(t1.col4) AS col4
FROM
   matable t1
WHERE
   NOT EXISTS (SELECT * FROM matable t2 WHERE t2.col1=t1.col1 AND t2.col2<>2)
GROUP BY t1.col1
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 11h19   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Merci pour la réponse vodiem.
Citation:
laisse ces p'vres gens tranquille, ils ont eu assez de mal à se débarrasser de toi
Mdr pourtant j'ai pas fait trop de rab'. Et dire que maintenant au boulot je suis super satisfait d'aller en formation, avec des sous en plus .

Merci à vous tous, à force de récupérer les formalismes de requêtes SQL je vais finir par avoir une bibliothèque dans laquelle je vais venir piocher des idées.
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 09h18   #8
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Une der :

- N'est-il pas possible de faire cette requête à l'aide d'une jointure car je fais un INSERT derrière le SELECT et j'ai de gros problèmes de performance?
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 11h47   #9
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
si je te dis: oui, c'est possible, ça répond à ta question?

à tout hasard mais vraiment par tout hasard, je te refile un sql (avec jointure), on sait jamais... des fois que...

Code SQL :
1
2
3
4
5
6
7
8
SELECT
   t1.col1,
   first(t1.col2) AS col2,
   first(t1.col3) AS col3,
   first(t1.col4) AS col4
FROM matable t1 LEFT JOIN matable t2 ON ((t2.col1=t1.col1) AND (t2.col2<>2))
WHERE t2.col2 IS NULL
GROUP BY t1.col1

Citation:
Envoyé par teuzadur
Et dire que maintenant au boulot je suis super satisfait d'aller en formation, avec des sous en plus.
j'ai qu'une recommandation dans ce cas: va en formation !
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 14h47   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Pas sûr que les requêtes soient identiques, 0 lignes updated. Je pense qu'il y a qq chose qui est incorrect.

Du coup la vitesse c'est de la balle , sans rire je passe de 1Heure à 1 sec.

Je ne comprends pas le soucis, es-tu sûr du LEFT JOIN et du WHERE t2.col2 IS NULL ?
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 15h05   #11
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
j'ai quasi pas dormi cette nuit mais j'ai pas halluciné...
je viens de refaire un test avec les données énoncées, j'obtiens bien les mêmes...
et la formulation me parait sans équivoque...

Citation:
Envoyé par teuzadur
la vitesse c'est de la balle
y au moins un point de résolu
vérifie que tu as bien des index: cela lubrifie la balle...
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web