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

Développement SQL Server Discussion :

Problème avec requête SELECT


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Par défaut Problème avec requête SELECT
    Bonjour tout le monde ,
    j'ai besoin d'aide pour une requette SQL sp :

    j'ai une table qui contient les colonnes suivantes :
    montant description index mois annee
    2565.25 CAG 2 1 2015
    1452.01 CAG 2 2 2015
    2565.25 CARG 3 3 2016
    100.45 CARG 3 4 2015
    41.25 HR 4 5 2017
    568.11 douane 1 12 2017
    205.20 Cout Materiel 5 11 2017
    142 Cout Materiel 5 7 2015

    . . . . .
    . . . . .
    . . . . .
    . . . . .
    . . . . .


    la table contient les donnée de chaque mois des anée 2015-2016-2017
    Je voudrais crée une Vue apartir de cette table qui me retourne un resultat tel que le suivant :

    mois année CA Charge exploitation Marge exploitation



    tout en sachant que CA = la somme des montant l'orsque index in (2,3,4)
    Charge exploitation = montant l'orsque index in( 1,5,6)
    Marge exploitation = Charge exploitation - CA


    qui peut m'aider SVP et merci d'avance

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Avec votre jeu d'essai, il n'y a jamais de mois avec a la fois du CA et des charges, je l'ai donc légèrement enrichi pour pouvoir calculer au moins une marge

    Voici la création du jeu d'essai (en rouge mon ajout)
    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
    WITH CTE1 (XMTT, XLIB, XNDX, XMM, XAA) AS         
        (SELECT 2565.25, 'CAG          ', 1, 01, 2015 
         UNION ALL                                    
         SELECT 1565.25, 'CAG          ', 2, 01, 2015 
         UNION ALL                                    
         SELECT 1452.01, 'CAG          ', 2, 02, 2015 
         UNION ALL                                    
         SELECT 2565.25, 'CARG         ', 3, 03, 2016 
         UNION ALL                                    
         SELECT 0100.45, 'CARG         ', 3, 04, 2015 
         UNION ALL                                    
         SELECT 0041.25, 'HR           ', 4, 05, 2017 
         UNION ALL                                    
         SELECT 0568.11, 'Douane       ', 1, 12, 2017 
         UNION ALL                                    
         SELECT 0205.20, 'Cout materiel', 5, 11, 2017 
         UNION ALL                                    
         SELECT 0142.00, 'Cout materiel', 5, 07, 2015 
        )
    La requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       SELECT XAA                                                        
            , XMM                                                        
            , SUM(CASE WHEN XNDX BETWEEN 2 AND 4 THEN XMTT END) AS CA    
            , SUM(CASE WHEN XNDX IN (1, 5, 6)    THEN XMTT END) AS CH    
            , SUM(CASE WHEN XNDX IN (1, 5, 6)    THEN XMTT END)          
            - SUM(CASE WHEN XNDX BETWEEN 2 AND 4 THEN XMTT END) AS MARGE 
       FROM CTE1                                                         
       GROUP BY XAA, XMM
    Et son résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     XAA         XMM                CA                CH             MARGE
    2015           1           1565.25           2565.25           1000.00
    2015           2           1452.01 ----------------- -----------------
    2015           4            100.45 ----------------- -----------------
    2015           7 -----------------            142.00 -----------------
    2016           3           2565.25 ----------------- -----------------
    2017           5             41.25 ----------------- -----------------
    2017          11 -----------------            205.20 -----------------
    2017          12 -----------------            568.11 -----------------
    EDIT : oups j'ai inversé CA et Charge dans le calcul de marge, à corriger bien sur

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Par défaut
    merci infiniment tu me sauve la vie <3

Discussions similaires

  1. Problème sur requête select avec les caractères spéciaux
    Par Julien698 dans le forum Développement
    Réponses: 3
    Dernier message: 06/08/2015, 14h08
  2. Problème avec Requête SELECT FROM
    Par PaulH38 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/05/2013, 14h57
  3. Réponses: 9
    Dernier message: 20/08/2012, 22h44
  4. Problème avec requête SELECT!
    Par Ronaldinho dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/08/2008, 14h44
  5. Problème de recordset avec requête SELECT
    Par gwinyam dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 08/03/2007, 10h53

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