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 :

Somme/Soustraction de colonnes/Alias


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut Somme/Soustraction de colonnes/Alias
    Bonjour,

    Voila j'ai une requetes qui me donne 4 colonnes:

    Col 1 --> ID
    Col 2 --> Valeur 1
    Col 3 --> Valeur 2
    Col 4 --> Valeur 3

    Je souhaiterais ajouter une 5eme colonne qui serait une soustraction de mes 3 dernieres colonnes.

    Col 5 = Col 4 - Col 3 - Col 2

    ==> Col 5 = Valeur 3 - Valeur 2 - Valeur 1

    Chacune de mes colonnes sont representees par des alias mais en soustrayant les ALIAS cela ne marche pas.

    J'utilise SQL server 2000. Est-ce que cela est possible? Si oui, comment?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Un alias est un nom que l'on donne à la colonne pour affichage. La référence aux alias n'est donc pas résolu dans le calcul de la requête.

    Vous devez donc reprendre les expressions relatives à vos alias pour en faire un nouveau calcul.

    A +

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Ok, au moins c'est clair. Par contre je ne vois pas comment faire avec ma nouvelle requete:

    Le resultat ici n'est plus affiche sous forme de colonne mais sous forme de lignes:

    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
    57
    58
    59
    60
    61
    62
    SELECT 
    CA.C6 AS "CP Ownership",
    'BCA' as "Type",
    SUM(T.COM)  as "Value"
    FROM 
    CAWP CA, CAWP WP, TPHASE T 
    WHERE 
    CA.PROGRAM = '2006HSBC'
    AND CA.PROGRAM = WP.PROGRAM
    AND CA.CA1=WP.CA1
    AND CA.CA2=WP.CA2
    AND CA.CA3=WP.CA3
    AND CA.WP=' '
    AND CA.C6!=' '
    AND WP.WP>' ' 
    AND T.PROGRAM = WP.PROGRAM 
    AND T.CAWPID=WP.CAWPID
    AND T.CLASS IN ('B1','B2','B3','B4','B5','B6','B7','B8','B9','CB','EB','G1','G2','G3','HB','J1','J2','J3','S1','S2','S3','SC','TB','V1','V2','V3','V4','V5','V6','V7','V8','V9')
    GROUP BY CA.C6
     
    UNION
     
    SELECT 
    CA.C6 AS "CP Ownership",
    'PBC' as "Type",
    SUM(T.COM)  as "Value"
    FROM 
    CAWP CA, CAWP WP, TPHASE T 
    WHERE 
    CA.PROGRAM = '2006HSBC'
    AND CA.PROGRAM = WP.PROGRAM
    AND CA.CA1=WP.CA1
    AND CA.CA2=WP.CA2
    AND CA.CA3=WP.CA3
    AND CA.WP=' '
    AND CA.C6!=' '
    AND WP.WP>' ' 
    AND T.PROGRAM = WP.PROGRAM 
    AND T.CAWPID=WP.CAWPID
    AND T.CLASS IN ('P1','P2','P3','P4','P5','P6','P7','P8','P9','PB')
    GROUP BY CA.C6
     
    UNION
     
    SELECT 
    CA.C6 AS "CP Ownership",
    'UNAPPROVED_RESIDUAL' as "Type",
    SUM(T.COM)  as "Value"
    FROM 
    CAWP CA, CAWP WP, TPHASE T 
    WHERE 
    CA.PROGRAM = '2006HSBC'
    AND CA.PROGRAM = WP.PROGRAM
    AND CA.CA1=WP.CA1
    AND CA.CA2=WP.CA2
    AND CA.CA3=WP.CA3
    AND CA.WP=' '
    AND CA.C6!=' '
    AND WP.WP>' ' 
    AND T.PROGRAM = WP.PROGRAM 
    AND T.CAWPID=WP.CAWPID
    GROUP BY CA.C6
    Ce qui donne:



    Ici le 'UNAPPROVED_RESIDUAL' n'est pas correct. Celui-ci devrait etre egale a PBC - BCA. Je ne vois pas comment je peux placer cela avec mes UNION.

    Si vous pourriez me mettre sur la bonne voie, cela m'aiderait beaucoup

    Par avance merci

Discussions similaires

  1. [Access] somme de 2 colonnes même qd une valeur nulle ?
    Par kikidrome dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2008, 20h18
  2. Réponses: 10
    Dernier message: 03/10/2006, 21h19
  3. comment calculer la somme d'une colonne d'un dbgrid
    Par kirty dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/07/2006, 21h55
  4. [SQL] Somme de 2 colonnes dans une même table
    Par Cyrilange dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/04/2005, 09h32
  5. [SQL]Somme pour chaque colonne de requete analyse
    Par Kekou03 dans le forum Access
    Réponses: 2
    Dernier message: 12/03/2005, 04h34

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