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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Aide requete oracle, sum sur 2 tables différentes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide requete oracle, sum sur 2 tables différentes

n°1559907
Alisteroid
Posté le 14-05-2007 à 11:11:38  profilanswer
 

Bonjour à tous,

 

J'ai un petit problème voici la strucutre de mes deux tables

 

TABLE 1

 

champ_1_1 : Valeurs différentes possibles : A,B,C,D
champ_3_3 : Libelle alphabetique pouvant prendre diverses valeurs
et d'autres champs non neccessaires dans cette requete.

 

TABLE 2

 

champ_1_2 : Valeurs différentes possibles : A,B,C,D
champ_2_2 : Valeurs différentes possibles : E,F,G
champ_3_2 : Libelle alphabetique pouvant prendre diverses valeurs (les même que sur la table 1, certaines valeurs n'étant pas référencées dans la table 1 et inversement)

Je cherche à recupérer le nombre d'occurences des différentes valeurs possibles du champ 1 et du champ 2 groupées par champ_3, ceci sur les deux tables, en faisant ça en une requete:

 

Je recherche donc un resultat sous la forme suivante :

 

    A     B     C     D     E     F     G       CHAMP3
     12    1    34    45   54   7      0        BLABLA
     2    45     0      42  4    5     42       BLUBLU

 

Je l'ai déja fait pour uen table mais je ne parviens pas à trouver la syntaxe pour le faire sur les deux à la fois, comment faire ce group by sur le champ3 qui est 'commun' aux deux tables.

 
Code :
  1. select count(*) as PERS_RAPPR,
  2.      CHAMP3,
  3.      SUM(decode (CHAMP1, 'A', 1 , 'B', 0, 'C', 0, 'D', 0)) AS A,
  4.      SUM(decode (CHAMP1, 'B', 1 , 'A', 0, 'C', 0, 'D', 0)) AS B,
  5.      SUM(decode (CHAMP1, 'C', 1 , 'B', 0, 'A', 0, 'D', 0)) AS C,
  6.       ETC... DE MËME SUR CHAMP2
  7.  from TABLE1 group by CHAMP3;


Message édité par Alisteroid le 14-05-2007 à 16:07:24
mood
Publicité
Posté le 14-05-2007 à 11:11:38  profilanswer
 

n°1559929
MagicBuzz
Posté le 14-05-2007 à 11:24:35  profilanswer
 

union entre les deux tables, et ta solution par dessus le total.
 
select sum(...)
from
(
   select champ3, champ2, champ1, etc.
   from tbl1
   union
   select champ3, champ2, champ1, etc.
   from tbl2
) as tmp

n°1559952
Alisteroid
Posté le 14-05-2007 à 11:36:09  profilanswer
 

Je vais essayer ça, je te remercie, je vous tiens au courant :jap:

n°1560227
Alisteroid
Posté le 14-05-2007 à 16:07:26  profilanswer
 

J'ai un petit probleme ma table 1 , ne comporte pas le champ 2, et du coup mon union se fait sur deux tables ayant un nombre de colonnes différents. -> Erreur sql  
Comment faire en sorte que ça passe? une astuce?

n°1560256
MagicBuzz
Posté le 14-05-2007 à 16:32:17  profilanswer
 

ben...
 
select champ1, ' ' champ2, champ3
from table1

n°1560339
Alisteroid
Posté le 14-05-2007 à 17:48:06  profilanswer
 

Merci pour ton aide magic buzz, le sql c'est vraiment pas trop mon truc, et mes 9 mois d'XP et le fait que j'ai jamais bossé sous oracle font que j'ai un peu du mal encore ...pour info voici donc ma fameuse requete :p

  

SELECT  DR, NOM_SIEGE as NOM,
      SUM(decode (CODE_VIG , 'VS', NB)) AS VS,
      SUM(decode (CODE_VIG , 'VG', NB)) AS VG,
      SUM(decode (CODE_VIG , 'VC', NB)) AS VC,
      SUM(decode (CODE_VIG , 'VV', NB)) AS VV,
      SUM(decode (CODE_VIG , 'VST', NB)) AS VST,
      SUM(decode (CODE_VIG , 'VGT', NB)) AS VGT,
      SUM(decode (CODE_VIG , 'VVT', NB)) AS VVT

 

    FROM siegeS,  
   
       (
      SELECT COUNT(*) as NB,
       RAPM_CODE_VIGI as CODE_VIG,
         LPAD(RAPM_".$this->filtres->niveau.",5,'0') as ".$this->filtres->niveau."
        from RAPPRO_PERS_MORALE GROUP BY RAPM_".$this->filtres->niveau.",RAPM_CODE_VIGI

 

       union all      

 

    SELECT COUNT(*),
         RAPM_CODE_VIGI_TIERS,
         LPAD(RAPM_".$this->filtres->niveau.",5,'0') as ".$this->filtres->niveau."
        from RAPPRO_PERS_MORALE GROUP BY RAPM_".$this->filtres->niveau.",RAPM_CODE_VIGI_TIERS

 

    union all      

 

    SELECT COUNT(*),
         VGPP_PART_VIGI,
         LPAD (VGPP_".$this->filtres->niveau.",5,'0') as ".$this->filtres->niveau."
       from vigilance GROUP BY VGPP_".$this->filtres->niveau.",VGPP_PART_VIGI ) WHERE DR=SIEGES.CODE_ENTITE GROUP BY DR,NOM_SIEGE "

 


Merci encore MagicBuzz, c'est encore toi qui me réponds, ça fait plaisir de trouver des personnes comme toi quand on galère un peu ;)


Message édité par Alisteroid le 14-05-2007 à 17:50:08

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

  Aide requete oracle, sum sur 2 tables différentes

 

Sujets relatifs
[SQL] Suppression multi tablesAide sur VBA Excel
Inserer 2 valeurs dans 2 tables differentessuppression plusieurs tables avec jointure
Besoin d'aide pour un petit programme de rien... :)[PostgreSQL et C] Requête rebelle
[Résolu][Débutant C#] - Requete SQLGros pb visual C++ Runtime Librairy. A l'aide !!!!!
[PHP] Aide au sujet d'une fonction et gestion d'erreur 
Plus de sujets relatifs à : Aide requete oracle, sum sur 2 tables différentes


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