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 :

Requête conditionnelle


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut Requête conditionnelle
    Bonsoir à tous j'ai la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT DATENAME(MONTH,[Date_Operation]) AS MOIS,DATENAME(YEAR,[Date_Operation]) AS ANNEE,[Date_Operation],[Date_Close],[HEURS],V.[IDCLIENT],V.[IDPRODUIT],SUM([ENTTREE]) AS [ENTTREE]
    ,SUM([SORTIE]) AS [SORTIE],SUM([RC]) AS [RC],[ENTREE] AS JAUGE
    , (SUM(COALESCE([ENTTREE],0))+(COALESCE([ENTREE],0))-SUM(COALESCE([SORTIE],0))+SUM(COALESCE([RC],0)) )  AS ETAT_STOCK
    ,(LAST_VALUE([ENTREE]) over (partition by V.IDPRODUIT, V.IDCLIENT,DATENAME(MONTH,Date_Debut) order by DATENAME(MONTH,Date_Debut))-(SUM(COALESCE([ENTTREE],0))+(COALESCE([ENTREE],0))-SUM(COALESCE([SORTIE],0))+SUM(COALESCE([RC],0)))) AS ECART
    FROM [VGESTIONSORTIESTATIONS] V
    INNER JOIN [STOCKDEBUTPARSTATION] S ON S.IDCLIENT=V.IDCLIENT AND S.IDPRODUIT=V.IDPRODUIT AND S.Date_Debut=V.Date_Operation
    WHERE   [Date_Operation]!='' AND V.IDCLIENT='CL17' AND V.[IDPRODUIT]='SUP01' AND ([SORTIE])!=''
    GROUP BY [Date_Operation],[Date_Close],[HEURS],V.[IDCLIENT],V.[IDPRODUIT],[ENTREE],Date_Debut
    qui me permet de déterminer l'état de stocks journalière en fonction de la colonne jauge. Je voudrais aussi avec la même requête calculer l'écart sur stocks mais la ligne 'ECART' ne répond pas à mes attentes
    Nom : Capture.PNG
Affichages : 179
Taille : 11,6 Ko
    comme vous voyez sur cette image je voudrais plutôt que la nouvelle Jauge soustrait l'état de stocks de la journée précédente pour me présenter l'état de stocks par jour exemple (31200-31358.88)=-158.88, (28200-28232.51)=-32.50 et que la colonne suivante soit nulle en attendant la jauge suivante.
    Quelqu'un aurai-t-il une idée?:calim2::calim2::calim2:

  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 897
    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 897
    Points : 53 135
    Points
    53 135
    Billets dans le blog
    6
    Par défaut
    Votre requête est strictement illisible. Commencez par enlever les crochets inutile et indentez correctement; Il y a des outils online sur le web pour cela.

    A +

  3. #3
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir SQLpro avec la requête suivante j'ai résolu en partie mon problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT Date_Operation,V.IDCLIENT,V.IDPRODUIT,sum(ENTTREE) AS ENTTREE
    	,SUM(SORTIE) AS SORTIE,SUM(RC) AS RC,COALESCE(ENTREE,0) AS JAUGE
    	, (sum(COALESCE(ENTTREE,0))+(COALESCE(ENTREE,0))-SUM(COALESCE(SORTIE,0))+SUM(COALESCE(RC,0)) )  AS ETAT_STOCK
    	, CASE WHEN  LEAD((COALESCE(ENTREE,0))) OVER(PARTITION BY V.IDPRODUIT, V.IDCLIENT ORDER BY  Date_Operation)>0 THEN LEAD((COALESCE(ENTREE,0))) OVER(PARTITION BY V.IDPRODUIT, V.IDCLIENT ORDER BY  [Date_Operation])-((SUM(COALESCE(ENTTREE,0))+(COALESCE(ENTREE,0))-SUM(COALESCE(SORTIE,0))+SUM(COALESCE(RC,0)))) END  AS ECART
    FROM [VGESTIONSORTIESTATIONS] V
    	LEFT JOIN [STOCKDEBUTPARSTATION] S ON S.IDCLIENT=V.IDCLIENT AND S.IDPRODUIT=V.IDPRODUIT AND S.Date_Debut=V.Date_Operation
    	INNER JOIN [CLIENT] C ON C.IDCLIENT=V.IDCLIENT
    	INNER JOIN [PRODUITSS] P ON P.IDPRODUIT=V.IDPRODUIT
    	WHERE   Date_Operation!='' AND V.IDCLIENT='CL17' AND V.IDPRODUIT='SUP01' and (SORTIE!='' or ENTTREE!='') 
    GROUP BY Date_Operation,V.IDCLIENT,V.IDPRODUIT,Date_Debut,ENTREE
    ORDER BY Date_Operation ASC
    Nom : etatsss.PNG
Affichages : 128
Taille : 27,1 Ko
    comme vous pouvez le constater sur l'image la colonne ECART est calculer comme je souhaite et le résultat est juste le soucis ce pose maintenant au niveau de la colonne ETAT_STOCK lorsque la colonne JAUGE n'est pas remplit le résultat n'est plus juste et je ne comprend pas pourquoi? pouvez vous m'aider s'il vous plais?

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

Discussions similaires

  1. [SQL2K] Faire un requête conditionnelle pour un CURSOR
    Par zooffy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/08/2007, 14h00
  2. [MySQL] Pb de requête conditionnelle
    Par jakkihm dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/03/2007, 21h40
  3. requêtes "conditionnelles"
    Par _marabout dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 02/04/2006, 14h46
  4. Suppression avec sous-requête conditionnelle
    Par Magnus dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/10/2005, 10h39
  5. suppression avec sous requête conditionnelle
    Par melmel dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/03/2004, 23h20

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