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 :

Operation Somme sur une requete


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Operation Somme sur une requete
    Bonjour à tous,

    J'aurais besoin d'aide sur une requete qui me retourne 2 ligne sur lequels je souhaiterais faire un cumul.Pour etre un peu plus claire j'ai 3 champ Codevaleur, Quantite et Sens, je veux en fonction du sens (Achat ou vente) signe ma quantite et faire le cumul après pour m eretrouver avc une seul ligne pour un code valeur donné. et je coince dessus. voilà ma PS à compléter qui utilise un curseur sachant que je ne c pas si c la bonne solution sous SQLserver2000.
    Merci de votre aide

    DECLARE @Titre varchar(9)
    DECLARE @Sens varchar(1)
    DECLARE @Qte int

    DECLARE Curs_TOPS CURSOR FOR
    --Séléction des instructions
    SELECT T_Titres.CodeValeur, SUM(CONVERT(decimal, REPLACE(T_Operations.Quantite, ',', '.'))) as Qte,T_Operations.Sens
    FROM T_Contreparties INNER JOIN
    T_Operations ON T_Contreparties.CodeCtpie = T_Operations.CodeCtpie RIGHT OUTER JOIN
    T_Titres ON T_Operations.CodeValeur = T_Titres.CodeValeur
    GROUP BY T_Operations.Sens, T_Titres.CodeValeur
    BEGIN
    OPEN Curs_TOPS
    END

    FETCH Curs_TOPS INTO @Titre,@Qte,@Sens
    WHILE @@FETCH_STATUS<>-1
    BEGIN
    if @Sens='A'
    set @Qte=@Qte
    IF @Sens='V'
    set @Qte=@Qte*-1

    FETCH Curs_TOPS INTO @Titre,@Qte,@Sens
    END

    CLOSE Curs_TOPS
    DEALLOCATE Curs_TOPS

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Je ne connais pas les procédures stockées, mais avec une requête sql j'utiliserais "case when"

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select CodeValeur, 
             coalesce(Sum(Case sens
               When 'A' Then Qte
               When 'V' Then (Qte * -1)
                End) ' +
           , 0.0) as Total
    from MaTable
    where ClauseWhere
    group by CodeValeur
    Isa
    Isachat

Discussions similaires

  1. transformation sur une requete SELECT
    Par juniorAl dans le forum Langage SQL
    Réponses: 8
    Dernier message: 08/04/2005, 18h12
  2. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  3. Somme dans une requete
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2004, 10h40
  4. Aide sur une requete de sélection
    Par stephdiplo150 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/01/2004, 10h40
  5. []débogage sur une requête dasn visual basic
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 24/09/2003, 09h59

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