AITFRAH1
Messages postés10Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention19 janvier 2010
-
13 janv. 2010 à 10:42
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDerniè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
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 16 janv. 2010 à 14:59
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
"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.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 19 janv. 2010 à 21:56
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.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 16 janv. 2010 à 15:22
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
AITFRAH1
Messages postés10Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention19 janvier 2010 19 janv. 2010 à 11:29
"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