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

Sybase Discussion :

Sous totaux par catégorie d'une colonne


Sujet :

Sybase

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Sous totaux par catégorie d'une colonne
    Bonjour,

    voici une partie de ma proc ( je débute )

    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
     
    create table #TOTAL_EFFECTIF
    	(
    		CLI_ORIGINE		varchar(6),
    	    	ANNEE			int,
    	   	MOIS			int,
    		TOT_CA			money,			TOT_CA_CUM		money,
    		TOT_VOL			numeric(30,2),
    		TOT_VOL_CUM		numeric(30,2),
    		TOT_PMV			decimal(10,2),
    		TOT_PMV_CUM		decimal(10,2)
    	)
     
    	insert into #TOTAL_EFFECTIF
    	select 
    		CLI_ORIGINE,
    	    	ANNEE,
    	   	MOIS,
    		sum(isnull(FAC_CA,0)),
    		sum(isnull(FAC_CA_CUMULE,0)),
    		sum(isnull(FAC_VOL,0)),
    		sum(isnull(FAC_VOL_CUMULE,0)),
    		sum(isnull(PMV,0)),
    		sum(isnull(PMV_CUMUL,0))
    	from MKT_005
    	group by CLI_ORIGINE,ANNEE,MOIS
    	Update MKT_005
    	Set 	
    		A.POIDS_CA=100*A.FAC_CA/B.TOT_CA,
    		A.POIDS_CA_CUMULE=100*A.FAC_CA_CUMULE/B.TOT_CA_CUM,
    		A.POIDS_VOL=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL)/convert(numeric(30,2),B.TOT_VOL)),
    		A.POIDS_VOL_CUMULE=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL_CUMULE)/convert(numeric(30,2),B.TOT_VOL_CUM)),
    		A.POIDS_PMV=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV)/convert(decimal(10,2),B.TOT_PMV)),
    		A.POIDS_PMV_CUMUL=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV_CUMUL)/convert(decimal(10,2),B.TOT_PMV_CUM))
    	from 
    		MKT_005 A, #TOTAL_EFFECTIF B
    	where
    		A.CLI_ORIGINE=B.CLI_ORIGINE 
    		and A.ANNEE=B.ANNEE
    		and A.MOIS=B.MOIS
    		and A.FTP_CODE=B.FTP_CODE
    		and A.PSU_CODE=B.PSU_CODE
    La partie qui pose problèmes :

    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
    Update MKT_005
    	Set 	
    		A.POIDS_CA=100*A.FAC_CA/B.TOT_CA,
    		A.POIDS_CA_CUMULE=100*A.FAC_CA_CUMULE/B.TOT_CA_CUM,
    		A.POIDS_VOL=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL)/convert(numeric(30,2),B.TOT_VOL)),
    		A.POIDS_VOL_CUMULE=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL_CUMULE)/convert(numeric(30,2),B.TOT_VOL_CUM)),
    		A.POIDS_PMV=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV)/convert(decimal(10,2),B.TOT_PMV)),
    		A.POIDS_PMV_CUMUL=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV_CUMUL)/convert(decimal(10,2),B.TOT_PMV_CUM))
    	from 
    		MKT_005 A, #TOTAL_EFFECTIF B
    	where
    		A.CLI_ORIGINE=B.CLI_ORIGINE 
    		and A.ANNEE=B.ANNEE
    		and A.MOIS=B.MOIS
    		and A.FTP_CODE=B.FTP_CODE
    		and A.PSU_CODE=B.PSU_CODE
    Au niveau des lignes de calcul comme la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A.POIDS_CA=100*A.FAC_CA/B.TOT_CA,
    En fait ma table MKT_005 contient 2 niveaux de regroupement :
    FTP_CODE
    PSU_CODE

    Et en fait je voudrais le pourcentage de chaque PSU_CODE par rapport au total de chaque code.

    Si j'ai pas été clair

    FTP_CODE1
    PSU_CODE11
    PSU_CODE12
    PSU_CODE13
    PSU_CODE14
    FTP_CODE2
    PSU_CODE21
    PSU_CODE22
    PSU_CODE23
    PSU_CODE24

    Et je voudrais calculer dans une procédure le % pour chaque PSU_CODE par rapport au total de son FTP_CODE.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Merci de lire les Conseils à lire avant de poster, et de préciser votre SGBD.

    En particulier, il faut savoir que ce forum traite de syntaxe SQL, et pas des nombreux langages procéduraux qui sont spécifiques à chaque SGBD.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Alors si c'est possible de déplacer mon poste dans la section SYBASE.

    Merci

Discussions similaires

  1. Totaux par catégories en pourcentages
    Par Boubas1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/06/2007, 09h08
  2. mettre valeur par default a une colonne
    Par nocoment dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 14h33
  3. Trigger : Récupérer la valeur par défaut d'une colonne
    Par mcspr2002 dans le forum Administration
    Réponses: 5
    Dernier message: 12/01/2007, 13h53
  4. [SQL] Enlever les doublons par rapport a une colonne
    Par irenee dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/12/2005, 19h23
  5. Réponses: 2
    Dernier message: 06/07/2004, 17h46

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