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 d'une soustraction possible ?


Sujet :

Langage SQL

  1. #1
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut Somme d'une soustraction possible ?
    Bonjour,

    Veuillez excuser ma question s'il elle vous paraît simpliste

    Voici ma requête :
    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
    select
    	a.ITMREF_0 as ref_article,
    	a.ITMDES1_0 as des_article,
    	a.TCLCOD_0 as categorie,
    	a.X_TYPVIN_0 as type_vin,
    	case a.X_COUL_0 when 'R' then 'Rouge' when 'S' then 'Rosé' when 'B' then 'Blanc' when 'X' then 'Indéterminé' end as couleur,
    	a.X_MILL_0 as millesime,
    	a.X_FORMAT_0  as format_vin,
    	t.X_DESVIN_0 as desig_libelle,
    	a.X_CAPSULE_0 as capsule,
    	a.X_ETIQ_0 as etiquette,
    	a.X_ETUI_0 as etui,
    	a.X_TYPCAIS_0 as type_caisse,
    	a.X_NBFCDT_0 as contenance,
    	a.X_RACINE_0 as racine,
    	a.STU_0 as unite_stock,
    	a.SAU_0 as unite_vente,
    	a.SSUSTUCOE_0 as coefficient,
    	s.QTYSTU_0 as stock_dispo,
    	sum (g.X_QTEUS_0 - g.X_QTCUMUSL_0) as gardiennage
    FROM
    	DILLON.ITMMASTER a, DILLON.STOCK s, DILLON.XCDEGARD g , DILLON.XTYPVIN t
    WHERE
    	a.ITMREF_0 = s.ITMREF_0
    and
    	a.ITMREF_0 = g.X_ITMREF_0
    and 
    	a.X_TYPVIN_0 = t.X_TYPVIN_0
    La dernière ligne de mon Select ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum (g.X_QTEUS_0 - g.X_QTCUMUSL_0) AS gardiennage
    Comment faire ?


  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut Adrien,

    comme ceci ?
    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
    SELECT
    	a.ITMREF_0 AS ref_article,
    	a.ITMDES1_0 AS des_article,
    	a.TCLCOD_0 AS categorie,
    	a.X_TYPVIN_0 AS type_vin,
    	case a.X_COUL_0 when 'R' then 'Rouge' when 'S' then 'Rosé' when 'B' then 'Blanc' when 'X' then 'Indéterminé' end AS couleur,
    	a.X_MILL_0 AS millesime,
    	a.X_FORMAT_0  AS format_vin,
    	t.X_DESVIN_0 AS desig_libelle,
    	a.X_CAPSULE_0 AS capsule,
    	a.X_ETIQ_0 AS etiquette,
    	a.X_ETUI_0 AS etui,
    	a.X_TYPCAIS_0 AS type_caisse,
    	a.X_NBFCDT_0 AS contenance,
    	a.X_RACINE_0 AS racine,
    	a.STU_0 AS unite_stock,
    	a.SAU_0 AS unite_vente,
    	a.SSUSTUCOE_0 AS coefficient,
    	s.QTYSTU_0 AS stock_dispo,
    	(select sum (g.X_QTEUS_0 - g.X_QTCUMUSL_0) AS gardiennage
                    FROM
     	   DILLON.ITMMASTER a, DILLON.STOCK s, DILLON.XCDEGARD g ,    DILLON.XTYPVIN t
                WHERE
    	a.ITMREF_0 = s.ITMREF_0
                AND
    	a.ITMREF_0 = g.X_ITMREF_0
                 AND 
    	a.X_TYPVIN_0 = t.X_TYPVIN_0)
    FROM
    	DILLON.ITMMASTER a, DILLON.STOCK s, DILLON.XCDEGARD g , DILLON.XTYPVIN t
    WHERE
    	a.ITMREF_0 = s.ITMREF_0
    AND
    	a.ITMREF_0 = g.X_ITMREF_0
    AND 
    	a.X_TYPVIN_0 = t.X_TYPVIN_0

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Une fonction de regroupement réclame une clause GROUP BY
    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
    select
        a.ITMREF_0 as ref_article,
        a.ITMDES1_0 as des_article,
        a.TCLCOD_0 as categorie,
        a.X_TYPVIN_0 as type_vin,
        case a.X_COUL_0 when 'R' then 'Rouge' when 'S' then 'Rosé' when 'B' then 'Blanc' when 'X' then 'Indéterminé' end as couleur,
        a.X_MILL_0 as millesime,
        a.X_FORMAT_0  as format_vin,
        t.X_DESVIN_0 as desig_libelle,
        a.X_CAPSULE_0 as capsule,
        a.X_ETIQ_0 as etiquette,
        a.X_ETUI_0 as etui,
        a.X_TYPCAIS_0 as type_caisse,
        a.X_NBFCDT_0 as contenance,
        a.X_RACINE_0 as racine,
        a.STU_0 as unite_stock,
        a.SAU_0 as unite_vente,
        a.SSUSTUCOE_0 as coefficient,
        s.QTYSTU_0 as stock_dispo,
        sum (g.X_QTEUS_0 - g.X_QTCUMUSL_0) AS gardiennage
    FROM
        DILLON.ITMMASTER a
    INNER JOIN
        DILLON.STOCK s
        ON a.ITMREF_0 = s.ITMREF_0
    INNER JOIN
        DILLON.XCDEGARD g
        ON a.ITMREF_0 = g.X_ITMREF_0
    INNER JOIN
        DILLON.XTYPVIN t
        ON a.X_TYPVIN_0 = t.X_TYPVIN_0
    GROUP BY
        a.ITMREF_0 
        ,a.ITMDES1_0 
        ,a.TCLCOD_0 
        ,a.X_TYPVIN_0 
        ,case a.X_COUL_0 when 'R' then 'Rouge' when 'S' then 'Rosé' when 'B' then 'Blanc' when 'X' then 'Indéterminé' end 
        ,a.X_MILL_0 
        ,a.X_FORMAT_0  
        ,t.X_DESVIN_0 
        ,a.X_CAPSULE_0 
        ,a.X_ETIQ_0 
        ,a.X_ETUI_0 
        ,a.X_TYPCAIS_0 
        ,a.X_NBFCDT_0 
        ,a.X_RACINE_0 
        ,a.STU_0 
        ,a.SAU_0 
        ,a.SSUSTUCOE_0 
        ,s.QTYSTU_0
    Par ailleurs, l'usage des jointures normalisées est fortement recommandé

  4. #4
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Merci pour ces réponses.

    al1_24, avec ta requête, je n'ai pas la somme que je souhaite... Je dois la rajouter où ?

    (formé aujourd'hui aux Lots DTS, vieux souvenirs SQL qui remontent )

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Citation Envoyé par Adrien Artero Voir le message
    al1_24, avec ta requête, je n'ai pas la somme que je souhaite... Je dois la rajouter où ?
    J'étais en train de la corriger quand tu l'as essayée

  6. #6
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Bonjour,

    J'ai tenté directement la requête d'al1_24 et........

    ça fonctionne impeccable, merci beaucoup

    Et il fallait effectivement des jointures car les miennes, je vais devoir les mettre en externe (je veux afficher les articles qui n'ont pas de stocks)

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

Discussions similaires

  1. 2 tables, une somme, une soustraction, un problème
    Par grinder59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/03/2012, 22h00
  2. arrondir un nombre découlant d'une soustraction de date
    Par bertrand_declerck dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2005, 14h51
  3. Aide sur une soustraction
    Par Job dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/07/2005, 11h44
  4. Somme dans une requete
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2004, 11h40
  5. [CR 8.5] Calculer la somme d'une somme
    Par Frederic Vincent dans le forum Formules
    Réponses: 4
    Dernier message: 12/02/2004, 18h53

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