[SQL] Group by

Group by [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 12-01-2006 à 15:51:25    

Bonjour,
 
j'ai un probleme sur cette requete :
 
 
 

Code :
  1. SELECT
  2.               TO_CHAR(cha.journee_postale,'DD/MM/YYYY') journee,
  3.         (
  4.           SUM(cha.ECOULEE)
  5.        +forfait( sar.ID_SAR1,sar.ID_ZA,cha.JOURNEE_POSTALE)
  6.        ) charge_calculee,
  7.        FORCE_PRO(sar.ID_SAR1,cha.JOURNEE_POSTALE) FDP,
  8.       NVL(
  9.           (
  10.           (
  11.             SUM(cha.ECOULEE)
  12.         +
  13.         forfait( sar.ID_SAR1,sar.ID_ZA,cha.JOURNEE_POSTALE)
  14.           )
  15.           /( DECODE(
  16.               FORCE_PRO( sar.ID_SAR1, cha.JOURNEE_POSTALE ),
  17.                0,NULL,
  18.              FORCE_PRO( sar.ID_SAR1, cha.JOURNEE_POSTALE )
  19.           )
  20.         )
  21.           )
  22.        ,0) taux_uti,
  23.        NVL(
  24.           (
  25.          (
  26.            forfait( sar.ID_SAR1,sar.ID_ZA,cha.JOURNEE_POSTALE)
  27.          )
  28.             /( DECODE(
  29.                 (SUM(cha.ECOULEE))
  30.             ,0,NULL,
  31.           (SUM(cha.ECOULEE))
  32.          )
  33.             )
  34.         )
  35.         ,0) taux_forfait
  36.        FROM
  37.                SAR1 sar,
  38.        SAR2 sard,
  39.        SAR3 sart,
  40.          CHARGE cha
  41.        WHERE
  42.                  sart.ID_CTC=PNI_ID_CTC
  43.        AND sart.ID_SAR3=sard.ID_SAR3
  44.        AND sard.ID_SAR2=sar.ID_SAR2
  45.        AND sar.ID_SAR1=cha.ID_SAR1
  46.        --validité de la journee postale ---------------------------------------------
  47.           AND TRUNC(PDI_DATE,'month')=TRUNC(cha.JOURNEE_POSTALE,'month')
  48.           AND sar.DATE_CREATION <=cha.JOURNEE_POSTALE
  49.        AND (sar.DATE_CREATION IS NULL OR sar.DATE_CREATION<=cha.JOURNEE_POSTALE)
  50.        AND sard.DATE_CREATION <=cha.JOURNEE_POSTALE
  51.        AND (sard.DATE_CREATION IS NULL OR sard.DATE_CREATION<=cha.JOURNEE_POSTALE)
  52.        AND sart.DATE_CREATION <=cha.JOURNEE_POSTALE
  53.        AND (sart.DATE_CREATION IS NULL OR sart.DATE_CREATION<=cha.JOURNEE_POSTALE)
  54.        AND cha.DATE_SUPPRESSION IS NULL
  55.           GROUP BY cha.journee_postale,sar.ID_SAR1,sar.ID_ZA;


 
 
 
En fait j'aimerais que la requete me renvoit une ligne par journée postale. Pour le moment elle me ramene une ligne par trio (journee_postale, id_sar1,id_za).
 
Si je modifie le group by de fin et le remplace par   GROUP BY cha.journee_postale; seulement c'est les calculs de mon select qui ne fonctionnent plus.
 
Comment faire?
 
Merci

Reply

Marsh Posté le 12-01-2006 à 15:51:25   

Reply

Marsh Posté le 12-01-2006 à 18:23:10    

Si tu choisis une seule ligne, tu veux laquelle ? Il faut un critère ...
ou alors tu veux une ligne qui somme le résultat pour tous les (sar.ID_SAR1,sar.ID_ZA), à cha.journee_postale donné. (mais ça ne semble pas être le cas, car tu dis : "les calculs de mon select ne fonctionnent plus" ).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed