Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1990 connectés 

  FORUM HardWare.fr
  Programmation

  [SQL] HELP sur une requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] HELP sur une requête SQL

n°22284
Edwige
Posté le 04-04-2001 à 14:37:15  profilanswer
 

Imaginons une table tbl_facture avec deux champs: Nom_client et Montant_facture. Un client peut être référencé plusieurs fois dans la table (i.e. il peut avoir plusieurs factures).

Quelle est la requête qui me permettrait d'avoir la liste DESCENDANTE des SOMMES des Montant_facture par Nom_client ?
Par exemple comme résultat :

Dupont 12.340
Perrin 11.988
Martin 10.877
Olivier 8.255
Marc    6.500
...
 
Merci d'avance pour votre aide :)

mood
Publicité
Posté le 04-04-2001 à 14:37:15  profilanswer
 

n°22287
instantdha​rma
Ailleurs c'est ici
Posté le 04-04-2001 à 14:44:01  profilanswer
 

select
  nom_client
 ,sum(montant_facture)
from tbl_facture
group by nom_client
 
attention, problème si nom_client n'est pas l'identificateur du client ; ds ce cas, tu cumules les montants de homonymes


---------------
di. / www.diredaredare.org - Ailes de la ville
n°22288
instantdha​rma
Ailleurs c'est ici
Posté le 04-04-2001 à 14:45:52  profilanswer
 

j'oubliais :
pour trier mar montant descendant, tu ajoutes
order by sum(montant_facture) desc


---------------
di. / www.diredaredare.org - Ailes de la ville
n°22291
Edwige
Posté le 04-04-2001 à 14:52:13  profilanswer
 

Un grand merci à toi :)

n°22324
Edwige
Posté le 04-04-2001 à 16:29:37  profilanswer
 

J'ai essayé avec et sans le ORDER BY sum(montant_facture) desc.
Sans, ça marche.
Avec, ça me met l'erreur : 0 is not a MySQL result index
Quelle modification dois-je apporter à ma table pour que ça marche?

n°22326
wouatouwou​atou
Posté le 04-04-2001 à 16:32:29  profilanswer
 

essayes de faire un  
 
order by sum(montant+1) desc
 
voire si ca marche...

n°22329
Edwige
Posté le 04-04-2001 à 16:36:01  profilanswer
 

le message d'erreur n'a pas bougé d'un iota :(

n°22331
omega2
Posté le 04-04-2001 à 16:42:12  profilanswer
 

T'utilises quelle base de donnée? (elles ne gèrent pas toutes les requêtes de la même manière.

n°22333
ddr555
Posté le 04-04-2001 à 16:44:05  profilanswer
 

Ajoute une condition where :
 
where montant_facture <> 0

n°22334
Edwige
Posté le 04-04-2001 à 16:45:50  profilanswer
 

C'est du MySQL.
 
Une petite remarque: j'ai essayé ORDER BY montant_facture desc et ça ne plante pas. Par contre, ce n'est pas vraiment le résultat que j'attends.

mood
Publicité
Posté le 04-04-2001 à 16:45:50  profilanswer
 

n°22335
Fred999
Rabat-joie
Posté le 04-04-2001 à 16:48:14  profilanswer
 

Dans le genre "mééthode vaudou" :
 
Tu peux essayer les alias :
 
select  
"nom"  =  nom_client,
"somme" = sum(montant_facture)  
from tbl_facture  
group by nom
order by somme desc
 
Aucune garantie que ça marche.
Le SQL est un langage somme toute très relatif :D

n°22337
Edwige
Posté le 04-04-2001 à 16:54:06  profilanswer
 

marche pas, marche pas, marche pas :(

n°22338
wouatouwou​atou
Posté le 04-04-2001 à 16:55:01  profilanswer
 

a mon avis c a cause du group by kil foire... c ptetre paske ta des client ki nont pas de factures...
 
Sinon, dans le desespoir, essaye sum(facture)+1 ce ki ne devrai pas marcher mais bon, qd on desespere... on n'a plus rien a perdre. :D

n°22344
Fred999
Rabat-joie
Posté le 04-04-2001 à 17:09:07  profilanswer
 

wouatouwouatou a écrit a écrit :

a mon avis c a cause du group by kil foire... c ptetre paske ta des client ki nont pas de factures...
 
Sinon, dans le desespoir, essaye sum(facture)+1 ce ki ne devrai pas marcher mais bon, qd on desespere... on n'a plus rien a perdre. :D




 
waoutou... Dans sa table, tu n'as que deux champs : le client et le montant de la facture. Donc, forcément, le champ "montant" est renseigné...
 
Sinon, si effectivement tu as raison, alors il faudrait faire un sum (isnull(montant, 0)) pour remplacer toutes les valeurs NULL par des 0.
 
Ceci dit, Edwige, je te conseille de contacter notre MySQL Master, joce lui-même.

n°22485
Fred999
Rabat-joie
Posté le 05-04-2001 à 11:31:25  profilanswer
 

Bon, sur ce que j'ai pu voir en SQL version Oracle et Sybase, l'order by devrait se faire sur ton sum(montant_facture).
 
Mais il semble que MySQL prenne certaines libertés vis-à-vis des standards...

n°22547
thegti
La constipation se soigne ...
Posté le 05-04-2001 à 13:28:05  profilanswer
 

select TMP.nom, TMP.somme
from
(select  
nom  =  nom_client,  
somme = sum(montant_facture)  
from tbl_facture  
group by nom) TMP  
order by TMP.somme desc

n°22570
wouatouwou​atou
Posté le 05-04-2001 à 13:52:54  profilanswer
 

Je vois ke les sub-select sont ta specialite thegti !!! :D:D:D
 
p.s: T'as vu ce matin... pas un train avt 11h20

n°22575
thegti
La constipation se soigne ...
Posté le 05-04-2001 à 14:01:41  profilanswer
 

Ah ah ah !!! :lol: :lol:
Je suis arrivé à 7h39 à la gare
et le train à 7h42
en plus place assise
 
Tranquille :)
 
Par contre, ce soir :( :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [SQL] HELP sur une requête SQL

 

Sujets relatifs
Un truc en HTML, c facile non ? but HELP !!!!!!!!JSP help
exportation de base access vers SQL Serverhelp
Programmation en SQL, freeware, conseils et bibliographie.....requête sur une base Sql
arborescence en SQL[ASP/VB/ActiveX] Help je comprends rien du tout à cette merde !
VB : HELP SUR LES BOUCLES 
Plus de sujets relatifs à : [SQL] HELP sur une requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR