Aide requête [Résolu]

AITFRAH1 10 Messages postés mercredi 18 mai 2005Date d'inscription 19 janvier 2010 Dernière intervention - 13 janv. 2010 à 10:42 - Dernière réponse : cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention
- 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
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 13 janv. 2010 à 11:16
3
Merci
pour la 1ere question, je sais pas.
Pour la 2eme, tu peux faire:
Select constructeur, Count(constructeur) from vehicule group by constructeur

Merci Guillemouze 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Guillemouze
Meilleure réponse
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 16 janv. 2010 à 14:59
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

Merci cs_Delphiprog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Meilleure réponse
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 19 janv. 2010 à 21:56
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

Merci cs_Delphiprog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 16 janv. 2010 à 15:02
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
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 16 janv. 2010 à 15:22
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
AITFRAH1 10 Messages postés mercredi 18 mai 2005Date d'inscription 19 janvier 2010 Dernière intervention - 19 janv. 2010 à 11:29
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.