IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[SQL] Group By


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Points : 64
    Points
    64
    Par défaut [SQL] Group By
    Bonjour,

    j'ai un probleme sur cette requete :



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

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par lapartdombre
    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).
    Comment calculer la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    forfait( sar.ID_SAR1, sar.ID_ZA, cha.JOURNEE_POSTALE)
    pour un cha.journee_postale, c'est à dire pour plusieurs sar.ID_SAR1, sar.ID_ZA, puisque ces colonnes ne sont dans aucune fonction d'agrégat ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    Oui c'est ca

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par lapartdombre
    Oui c'est ca
    Tu es le seul à pouvoir répondre à cette question qui est fonctionnelle et non technique...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] group by et order by dans la même requête ?
    Par thomfort dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/08/2007, 23h31
  2. SQL GROUP BY intervalle de date
    Par Junior_jef dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/04/2007, 16h53
  3. Petit problème SQL (GROUP BY|ORDER BY)
    Par kalash_jako dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/04/2007, 00h17
  4. [SQL] Group by + SUM + Min
    Par Deejoh dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2006, 16h46
  5. [Access] Requète SQL Group By, Order By and Co
    Par zoidy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/06/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo