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 de While imbriqué


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2012
    Messages : 26
    Par défaut Problème de While imbriqué
    Bonjour ,
    est il possible d'imbriquer des WHILE ?
    Dans mon cas des que le 2eme WHILE se termine on dirait qu'il termine aussi le 1er.

    Testé indépendamment ils fonctionnent.
    Mon code :
    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
     
    SET DATEFORMAT dmy
    declare @DATE_EN_COURS as date
    declare @DATE_DEBUT as date
    declare @DATE_FIN as date
    declare @CODE_MAGASIN as numeric
    declare @NOMBRE_MAX_MAGASIN as numeric
     
    SET @DATE_EN_COURS='01/01/1900'
    SET @CODE_MAGASIN=1
    SET @NOMBRE_MAX_MAGASIN=2
     
    WHILE DATEADD(month, DATEDIFF(month, 0, @DATE_EN_COURS), 0)<>DATEADD(month, DATEDIFF(month, 0,(DATEADD(month, 1, GETDATE())) ), 0)
    	BEGIN
    		SET @DATE_DEBUT=DATEADD(month, DATEDIFF(month, 0, @DATE_EN_COURS), 0) /* premier_jour_du_mois_courant  */
    		SET @DATE_FIN=DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0,@DATE_EN_COURS) + 1, 0)) /*  dernier_jour_du_mois_courant */
    		SET @DATE_EN_COURS=DATEADD(month, 1, @DATE_EN_COURS)
     
    			WHILE @CODE_MAGASIN<=@NOMBRE_MAX_MAGASIN
    				BEGIN
    					insert into stat_mois (REFERENCE,CODE_MAGASIN,QTE_SORTIE,QTE_ENTREE,TACH_TOTALHT,TACH_TOTALHTNET,TACH_TOTALTTC,TACH_TOTALTTCNET,TACH_TOTALPRHT,TVTE_TOTALHT,TVTE_TOTALHTNET,TVTE_TOTALTTC,TVTE_TOTALTTCNET,TVTE_TOTALPRHT,TVTE_TOTALMARGE)
     
    					select distinct reference ,CODE_MAGASIN,SUM(QTE_SORTIE),sum(QTE_ENTREE),sum(ACH_TOTALHT),sum(ACH_TOTALHTNET),sum(ACH_TOTALTTC),sum(ACH_TOTALTTCNET),sum(ACH_TOTALPRHT),sum(VTE_TOTALHT),sum(VTE_TOTALHTNET),sum(VTE_TOTALTTC),sum(VTE_TOTALTTCNET),sum(VTE_TOTALPRHT),sum(VTE_TOTALMARGE)
    						from MOUVSTK 
    							where CODE_ORIGINE<>'<INV>'and CODE_ORIGINE<>'RS'and CODE_ORIGINE<>'IM' AND CODE_MAGASIN=@CODE_MAGASIN AND "DATE">=@DATE_DEBUT and "DATE"<=@DATE_FIN 
    								GROUP by REFERENCE,CODE_MAGASIN
     
    					SET @CODE_MAGASIN=@CODE_MAGASIN+1
    				END		
     
    END

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 118
    Par défaut
    Bonjour,

    Il faut réinitialiser la valeur de la variable @CODE_MAGASIN après la 2ème boucle WHILE.

  3. #3
    Membre averti
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2012
    Messages : 26
    Par défaut
    La honte
    je suis passé a cote de ca.

    Merci SQLDev.

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

Discussions similaires

  1. Problème avec deux boucles do whiles imbriquées
    Par breizh297 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/11/2010, 08h37
  2. Problème boucle while imbriquée dans autre boucle while
    Par nattydreadnatty dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2010, 14h58
  3. Boucle while imbriqué, problème de renvoi de valeur
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 17h09
  4. problème d'execution de 2 boucles while imbriquées
    Par missyos dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/03/2008, 14h01
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

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