A voir également:
- Requete sql
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Sql server recovery - Télécharger - Gestion de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Requête sql doublons sur 2 champs ✓ - Forum Programmation
3 réponses
Pool Orion
Messages postés
124
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
15 juin 2007
55
4 juin 2007 à 10:15
4 juin 2007 à 10:15
Salut Julien,
Tu ne pourras pas récupérer en une seule requête, la marque suivi de la liste des modèles par contre tu peux très bien réaliser un tri sur la marque et même sur les modèles. Prenons un exemple simplifié :
Table voitures :
Marque | Modele
A | 1
A | 2
B | 1
B | 2
1) Select Marque, Modele from Voitures order by Marque, Modele te retourne le tableau que tu vois si dessus (j'ai déjà trié la table dans l'exemple mais elle ne l'est forcément).
Si tu veux vraiment avoir la liste des modèles pour chaque marque, tu devras utiliser deux requètes :
1) Select Marque from Voitures order by Marque
2) pour chaque record retourné
Select Modele from Voitures where Marque = ...
Maintenant celon le réceptacle, il te faudra peut-être utiliser les curseurs en lieu et place de "simple Select".
Voilà j'espère que ça t'aidera.
Tu ne pourras pas récupérer en une seule requête, la marque suivi de la liste des modèles par contre tu peux très bien réaliser un tri sur la marque et même sur les modèles. Prenons un exemple simplifié :
Table voitures :
Marque | Modele
A | 1
A | 2
B | 1
B | 2
1) Select Marque, Modele from Voitures order by Marque, Modele te retourne le tableau que tu vois si dessus (j'ai déjà trié la table dans l'exemple mais elle ne l'est forcément).
Si tu veux vraiment avoir la liste des modèles pour chaque marque, tu devras utiliser deux requètes :
1) Select Marque from Voitures order by Marque
2) pour chaque record retourné
Select Modele from Voitures where Marque = ...
Maintenant celon le réceptacle, il te faudra peut-être utiliser les curseurs en lieu et place de "simple Select".
Voilà j'espère que ça t'aidera.
Access est vraiment mal fait pour ne pas qu'on puisse faire ça facilement.
J'ai vu qu'avec d'autre sgbd on pourrait faire
SELECT voitures.Marque,concat(voitures.modele)
FROM voitures
GROUP BY voitures.Marque;
Evidemment sous access la fonction concat n'existe pas, n'a pas d'équivalent et ne peut même pas être programmé en vba.
Bon dans le cas ou il n'y a qu'un nombre tres limité de modele par marque possible, on peut faire une premiere requete Prem
SELECT voitures.Marque,first(voitures.modele)
FROM voitures
GROUP BY voitures.Marque;
Pour obtenir la premier modèle de chaque marque.
Puis la requete Deux
SELECT voitures.Marque,first(voitures.modele)
FROM voitures
WHERE voitures.modele NOT IN (SELECT Prem.modele FROM Prem)
GROUP BY voitures.Marque;
Ce qui permet d'obtenir le deuxième modèle de chaque marque (Remplacer éventuellement voitures.modele par un identifiant unique)
Etc. en esperant que tu n'a pas 25 modele possible.
Donc cette solution n'est pas génial mais c'est la seule que j'ai trouvé permettant d'éviter le vba. Si quelqu'un a mieu je suis preneur
J'ai vu qu'avec d'autre sgbd on pourrait faire
SELECT voitures.Marque,concat(voitures.modele)
FROM voitures
GROUP BY voitures.Marque;
Evidemment sous access la fonction concat n'existe pas, n'a pas d'équivalent et ne peut même pas être programmé en vba.
Bon dans le cas ou il n'y a qu'un nombre tres limité de modele par marque possible, on peut faire une premiere requete Prem
SELECT voitures.Marque,first(voitures.modele)
FROM voitures
GROUP BY voitures.Marque;
Pour obtenir la premier modèle de chaque marque.
Puis la requete Deux
SELECT voitures.Marque,first(voitures.modele)
FROM voitures
WHERE voitures.modele NOT IN (SELECT Prem.modele FROM Prem)
GROUP BY voitures.Marque;
Ce qui permet d'obtenir le deuxième modèle de chaque marque (Remplacer éventuellement voitures.modele par un identifiant unique)
Etc. en esperant que tu n'a pas 25 modele possible.
Donc cette solution n'est pas génial mais c'est la seule que j'ai trouvé permettant d'éviter le vba. Si quelqu'un a mieu je suis preneur