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 :

Utilisation de curseur..


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nadaa
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Par défaut Utilisation de curseur..
    CODE]
    Declare @Myvar int
    Select Min(ud.Year),
    Max(ud.Year)
    From MyTable
    Where MyValue = @MyVar

    [/CODE]

    Mon probleme, je dois recuprer la variable MyVar d une liste de n elements resultante d une autre requete, pour ca je dois utiliser un curseur mais c est la ou je bloque...

    Quelqu un pourrais m aider?

    Merci par avance,

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Select Min(ud.Year),
    Max(ud.Year)
    From MyTable ud
    Where MyValue IN (SELECT YourValue FROM YourTable WHERE NotreColonne = LeurValeur)

  3. #3
    Membre confirmé Avatar de Nadaa
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Par défaut
    Ca ne marche pas, je dois utiliser un curseur pour parcourir la liste, car le code que j ai poster n est qu un petit bout dans une stored procedure..

    Merci si vous avez une idee?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Salut,

    avant de parler de code et de façon d'implémenter ton besoin, peux-tu nous donner le contexte extact de ce que tu veux faire ? Avec exemples numériques à l'appui ?

    Parce que perso, j'ai pas compris.

  5. #5
    Membre confirmé Avatar de Nadaa
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Par défaut
    Effectivement voici mon code,

    Mais je vois dans le resultat il met toujours la meme valeur a savoir la premiere repetee plusieurs fois

    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
     
     
    Declare @IndId  int
     
    Declare IndList CURSOR FOR 
    select distinct IND_ID from  MyDB.UnitData  
     
    Declare @Indvar int
    Open IndList
    FETCH NEXT FROM IndList
    into @Indvar;
     
    while (@@FETCH_STATUS = 0)
    begin 
     
    SET @IndId = @Indvar
     
    Select	@IndId ,
    	Min(ud.Year) as Miny,
    	Max(ud.Year)as Maxy,
    	count ( Distinct ud.year) as nmby,			
    	From	MyDB.Unit u
    	Inner Join	MyDB.UnitData ud
    	On	((u.Unit_Id = ud.Unit_id)
    	and  	(ud.Ind_id = @IndId  ))
     
     
    FETCH NEXT FROM IndList
    end
    close IndList
    deallocate IndList
    Je ne sais pas ou est l erreur...
    Ce que j aimerais apres mettre le resultat dans une table...mais deja comme ca ca marche pas..

    Mille merci par avance,

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    A regarder ton code, je ne vois pas ce qui t'empêche de le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT	
    	ud.IND_ID ,
    	Min(ud.Year) as Miny,
    	Max(ud.Year)as Maxy,
    	count ( Distinct ud.year) as nmby		
    From MyDB.UnitData ud
    group by ud.IND_ID
    Mais si tu tiens vraiment à ton curseur, ajoute au deuxième
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FETCH NEXT FROM IndList

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Regarde bien tes deux lignes "FETCH next from...". Tu vois pas une différence ?

    Sinon, à quoi te sert la variable @IndID ? Tu peux pas garder @IndVar partout ?

    Sinon, je pense que ta proc fait autre chose car très clairement dans ton morceau de code, le curseur sert à rien. Une simple jointure serait nécessaire, en ajoutant un group by

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

Discussions similaires

  1. Utiliser un curseur se trouvant dans "C:/WINDOWS/Cursors".
    Par Pragmateek dans le forum Windows
    Réponses: 5
    Dernier message: 31/08/2006, 12h59
  2. [Débutant] Utilisation de curseurs
    Par snoopy69 dans le forum Oracle
    Réponses: 17
    Dernier message: 14/06/2006, 08h50
  3. Réponses: 2
    Dernier message: 16/05/2006, 09h57
  4. [TChart] Comment utiliser le curseur sur une courbe ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/09/2005, 16h49
  5. utilisation de curseur
    Par diunisu06 dans le forum Sybase
    Réponses: 5
    Dernier message: 26/06/2003, 12h08

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