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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [résolu]Jointure externe et GROUP BY

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Jointure externe et GROUP BY

n°1758215
mi_boulet-​mi_shemale
Posté le 11-07-2008 à 04:15:33  profilanswer
 

Bonjour,
J'utilise une base SQL Server et à partir de la requête (un peu plus bas) je souhaite obtenir le résultat suivant

citroen      320
 peugeot      160
 renault      NULL


au lieu de  

citroen      320
 peugeot      60
 peugeot      100
 renault      NULL


Voici la requête que j'utilise. J'aurai pensé que le GROUP BY aurait agrégé les marques, mais cela ne semble pas vouloir être le cas. Si j'utilise le sum(), j'ai un comportement assez étrange qui double mes montants plutôt que de les additionner... Si jamais vous avez une réponse, à ce problème je suis preneur. Merci beaucoup. Voir solution au bas du post

Code :
  1. SELECT
  2.   case when f1.marque is Null then f2.marque else f1.marque end as marq,
  3.   f2.total_vente
  4. FROM
  5.   (SELECT * FROM voiture) f1
  6. FULL OUTER JOIN
  7.   (SELECT marque, montant * quantite AS total_vente FROM vente GROUP BY marque, montant, quantite) f2
  8. ON
  9.   f1.marque = f2.marque
  10. GROUP BY f2.marque, f1.marque, f2.total_vente
  11. ORDER BY marq


- Table vente
  MARQUE     MODELE     MONTANT    QUANTITE
 citroen    Xantia     40         8
 peugeot    307        50         2
 peugeot    408        60          1


- Table voiture
  MARQUE      MODELE      ANNEE
 peugeot    307        2008
 citroen    Xantia     1990
 citroen    Picasso    2008
 renault    espace     2002
 renault    R21        1990
 peugeot    408        2009


 
 
Résolution :
 

Code :
  1. SELECT
  2.   case when f1.marque is Null then f2.marque else f1.marque end as marq,
  3.   f2.total_vente
  4. FROM
  5.   (SELECT * FROM voiture) f1
  6. FULL OUTER JOIN
  7.   (SELECT marque, sum(montant * quantite) AS total_vente FROM vente GROUP BY marque) f2
  8. ON
  9.   f1.marque = f2.marque
  10. GROUP BY f1.marque, f2.marque, f2.total_vente


Message édité par mi_boulet-mi_shemale le 11-07-2008 à 04:31:32
mood
Publicité
Posté le 11-07-2008 à 04:15:33  profilanswer
 


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

  [résolu]Jointure externe et GROUP BY

 

Sujets relatifs
compiler les exemples directX [résolu][resolu] Ajax et XML. Mon script ne fonctionne pas.
[Résolu] lightbox et Flash[Resolu] Recuperer l'index d'un noeud dans sont parent (DOM).
[AS3-résolu] Créer une classe[Résolu] SQL liste meilleur score pour 1 joueur
[Résolu] Comment "pré-stocker" des réponses à des boutons d'un .exe ?[Résolu] AppendChild qui insere mais pas de css sous IE
[Résolu] Communiquer entre deux processus: chose impossible ?[Résolu] Editeur wysiwyg dans un formulaire html
Plus de sujets relatifs à : [résolu]Jointure externe et GROUP BY


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