Aide requête [Résolu]

Messages postés
10
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
19 janvier 2010
- - Dernière réponse : cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
- 19 janv. 2010 à 21:56
Bonjour ;
J'ai 1 table véhicule avec les champs suivants :
Matricule, constructeur, modèle, nombre
J'ai les enregistrements suivants :
Matricule constructeur modèle nombre
15024598 PEUGEOT partner 3
15043642 PEUGEOT 406 2
09092219 PEUGEOT 406 3
08051459 PEUGEOT 406 4
15097888 PEUGEOT 207 2
15064269 RENAULT megane 1
16082056 FORD fiesta 2

Pour calculer le nombre total des véhicules j'ai utilisé 1 query
Select sum(nombre)as total
From vehicule

Pour afficher le total par constructeur j'ai utilisé 1 autre requête :
Select constructeur, sum(nombre)as totalconstructeur
From vehicule
Group by constructeur
Et ça marche bien. ce qu'il y a, je veux ajouter une autre colonne au dbgrid relié à cette requête pour me calculer le pourcentage par constructeur et l'afficher avec 2 décimales et signe %
Exemple : PEUGEOT 14 82,35%

Résultat souhaité
constructeur Total constructeur pourcentage
PEUGEOT 14 82,35%
RENAULT 1 5,88%
FORD 2 11,73%
Ya t il 1 possibilité ? merci pour votre aide

Ma 2eme question
Ya ti 1 requête qui permet de compter le nombre d'itération d'un enregistrement dans 1 table et l'afficher dans 1 tableau
Avec l'exemple précèdent

constructeur Nombre enregistrement
PEUGEOT 5
RENAULT 1
FORD 1

Note
5=nombre d'itération de peugeot
1=nombre d'itération de renault et ford
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
1015
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
29 août 2013
3
Merci
pour la 1ere question, je sais pas.
Pour la 2eme, tu peux faire:
Select constructeur, Count(constructeur) from vehicule group by constructeur

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de Guillemouze
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
3
Merci
Bonjour,

"je veux ajouter une autre colonne au dbgrid relié à cette requête pour me calculer le pourcentage par constructeur et l�afficher avec 2 décimales et signe %
Exemple : PEUGEOT 14 82,35%

Résultat souhaité
constructeur Total constructeur pourcentage
PEUGEOT 14 82,35%
RENAULT 1 5,88%
FORD 2 11,73%
Ya t il 1 possibilité ? merci pour votre aide" :

Réponse :
SELECT   constructeur,
         Sum(nombre)  AS nombre,
         Concat(Format(Sum(nombre) / (SELECT Sum(nombre)
                                      FROM   vehicule) * 100,2),
                ' %') AS "en %"
FROM     vehicule
GROUP BY constructeur




Résultat :
'FORD', 2, '11.76 %'
'PEUGEOT', 14, '82.35 %'
'RENAULT', 1, '5.88 %'

"Ma 2eme question
Y a-t-il 1 requête qui permet de compter le nombre d�itération d�un enregistrement dans 1 table et l�afficher dans 1 tableau
Avec l�exemple précèdent

constructeur Nombre enregistrement
PEUGEOT 5
RENAULT 1
FORD 1

Note
5=nombre d�itération de peugeot
1=nombre d�itération de renault et ford "

Réponse :
SELECT   constructeur,
         Count(constructeur)
FROM     vehicule
GROUP BY constructeur



Résultat :
'FORD', 1
'PEUGEOT', 5
'RENAULT', 1

De rien et à plus

NB : ces requêtes ont été écrites et testées avec MySQL et devraient pouvoir être adaptées, si nécessaire à Access.


May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Sauvons MySQL

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
3
Merci
Si au moins tu avais pris la peine de préciser le SGBD utilisé, tu n'aurais pas eu ce problème.
Si c'est la fonction CONCAT qui n'est pas supportée, tu peux la remplacer par l'opérateur de concaténation standard du SQL.

"Par contre j�ai apporté 1 modification et ça marche mais le pourcentage n�est pas affiché avec 2 décimales et sans le signe %. "
Qu'à cela ne tienne, tu peux toujours formater les données avec le code Delphi.

Je ne connais pas ton SGBD mais je pense que c'est la sous-requête contenue dans la commande ci-dessous qui est en cause :
SELECT constructeur,
Sum(Nombre) AS nombre,
( (Sum(Nombre) / (SELECT Sum(Nombre) FROM vehicule) )*100 ) AS pourcentage
FROM vehicule
GROUP BY constructeur


May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

[url=http://www.helpmysql.org/fr/petition]Sauvons My

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
Suggestion : quand tu as un problème SQL, penses à utiliser le forum SQL pour obtenir une réponse plus rapidement.

Bonne continuation.

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Sauvons MySQL
Commenter la réponse de cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
Bonus pour les MySQL users :

SELECT   coalesce(constructeur, 'Total constructeurs') AS constructeurs,
         Sum(nombre)  AS nombre,
         Concat(Format(Sum(nombre) / (SELECT Sum(nombre)
                                      FROM   vehicule) * 100,2),
                ' %') AS "en %"
FROM     vehicule
GROUP BY constructeur with rollup


Résultat :
'FORD', 2, '11.76 %'
'PEUGEOT', 14, '82.35 %'
'RENAULT', 1, '5.88 %'
'Total constructeurs', 17, '100.00 %'

Cordialement,
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Sauvons MySQL
Commenter la réponse de cs_Delphiprog
Messages postés
10
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
19 janvier 2010
0
Merci
"je veux ajouter une autre colonne au dbgrid relié à cette requête pour me calculer le pourcentage par constructeur et l�afficher avec 2 décimales et signe %
Exemple : PEUGEOT 14 82,35%

Résultat souhaité
constructeur Total constructeur pourcentage
PEUGEOT 14 82,35%
RENAULT 1 5,88%
FORD 2 11,73%

J'ai essayé le code suivant (que vous m?avez fourni) :
SELECT constructeur,
Sum(nombre) AS nombre,
Concat(Format(Sum(nombre) / (SELECT Sum(nombre)
FROM vehicule) * 100,2),
' %') AS "en %"
FROM vehicule
GROUP BY constructeur

mais ça marche pas.le message d'erreur suivant est affiché :
FONCTIONNALITE NON SUPPORTEE.
Je vous informe que j'utilise delphi 6 edition entreprise
Par contre j'ai apporté 1 modification et ça marche mais le pourcentage n'est pas affiché avec 2 décimales et sans le signe %.

SELECT constructeur,
Sum(Nombre) AS nombre,
( (Sum(Nombre) / (SELECT Sum(Nombre) FROM vehicule) )*100 ) AS pourcentage
FROM vehicule
GROUP BY constructeur

j'ai essayé d'arrondir le pourcentage avec la fonction ROUND mais le message FONCTIONALITE NON SUPPORTEE est affiché.
je ne sais pas s'il ya d'autre solution
Commenter la réponse de AITFRAH1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.