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

MS SQL Server Discussion :

utiliser le resultat d'un SUM dans une variable


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut utiliser le resultat d'un SUM dans une variable
    Bonjour,

    Je me demande comment stocker dans une variable le resultat d'un SUM pour l'utiliser par la suite.

    Pour le moment, voici ce que j'ai (en simplifie )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE @columnSum char(16)
    DROP Table MaTable
    CREATE TABLE MaTable(Id int) 
    SELECT SUM(Id) into @columnSum from MaTable
    PRINT @columnSum
    et j'obtiens un message :
    Server: Msg 170, Level 15, State 1, Line 6
    Line 6: Incorrect syntax near '@columnSum'.

    J'ai essaye de passe par une table intermediaire mais ca marche tres bien avec simplement Id mais pas avec SUM(Id)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DROP Table MaTable
    CREATE TABLE MaTable(Id int) 
    SELECT Id into rr from MaTable
    Le message, cette fois la (avec SUM(Id)) est :
    Server: Msg 8155, Level 16, State 1, Line 6
    No column was specified for column 1 of 'rr'.

    Quelqu'un aurait il une idee ?
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    juste une question de syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT @columnSum = SUM(Id)
    FROM MaTable
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    Merci beaucoup, Ca marche. Par contre, rencontre un petit probleme par la suite.

    Dans le contexte, c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DECLARE @query nvarchar(500)
    DECLARE @columnSum char(16)
     
    SELECT @query = 'SELECT @columnSum = SUM(Id) from MaTable'
    EXEC(@query)
    PRINT  '          Somme: '+@columnSum
    et j'obtiens
    Server: Msg 137, Level 15, State 2, Line 8
    Must declare the variable '@columnName'.

    Pourtant, je la declare bien. Il doit y avoir un pepin au niveau du EXEC
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    là tu compliques

    tu dois déclarer ta variable dans le scope de ce que tu fais. A l'intérieur de ton sql dynamique (de ton EXEC), SQL Server ne voit plus la variable. Si tu veux vraiment faire un EXEC de ton SQL dynamique (est-ce nécessaire ?), tu dois déclarer la variable et faire le print dans la chaîne exécutée
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    ok, je vais tester ca.
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    Tout marche parfaitement bien. Merci beaucoup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE @query nvarchar(500)
    SELECT @query = 'DECLARE @columnSum char(16); SELECT @columnSum = SUM(Id) from MaTable; 
    PRINT  ''          Somme: ''+@columnSum'
    EXEC(@query)
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

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

Discussions similaires

  1. Stocker le resultat du proc summary dans une variable
    Par vallery dans le forum SAS STAT
    Réponses: 2
    Dernier message: 21/04/2011, 10h26
  2. Resultat d'un Count dans une variable
    Par Alinou64 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/08/2010, 14h02
  3. affecter le resultat d'un select dans une variable
    Par ricoree78 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/06/2009, 14h48
  4. Resultat D'1 Formule Dans Une Variable
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/12/2006, 15h07
  5. Utiliser la valeur d'un input dans une variable php
    Par megane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 16h02

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