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 :

Boucle en SQL


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Points : 126
    Points
    126
    Par défaut Boucle en SQL
    Bonjour,

    Je cherche à migrer ce bout de code windev en SQL

    En gros je fais une première requête , puis je veux la parcourir , et a chaque enregistrement exécuter une 2 ème requête

    Comment puis-je faire ?


    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
     
     
    ChaineSelect=	"SELECT IDversion "+...
    "FROM cd     "+...
    "where Datefincom='00000000' "+...
    "Group by IDVersion"
     
    	SI PAS SQLExec(ChaineSelect,vl_req) ALORS
    		SQLInfoGene(vl_req)
    		Erreur("Erreur SQL : " + SQL.MesErreur)
    	SINON
     
    		SQLPremier(vl_req)
    		TANTQUE  PAS  SQL.EnDehors 
    			//Insertion dans ma 2 eme table
    			Chaineinsert="INSERT INTO cd2 select * from cd where IDVersion ="+SQLCol(vl_req,1)+"  ORDER BY DATETARIF DESC LIMIT 1"
     
    			SQLSuivant(vl_req)
    		FIN
    		SQLFerme(vl_req)
    	FIN
    FIN

  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 902
    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 902
    Points : 51 646
    Points
    51 646
    Billets dans le blog
    6
    Par défaut
    si unicité de retour de la sous requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    INSERT INTO cd2 
    select * 
    from cd 
    where IDVersion = (SELECT IDversion ..
                       FROM cd  
                       where Datefincom ...
                       Group by IDVersion )
    sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO cd2 
    select * 
    from cd 
    where IDVersion IN (SELECT IDversion ..
                        FROM cd  
                        where Datefincom ...
                        Group by IDVersion )
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO cd2 
    select T1.* 
    from   cd AS T1
            INNER JOIN cd as T2
                  ON T1.IDVersion  = T2.IDVersion 
    where  T2.Datefincom ...
    Group  by IDVersion ???
    Cela dit je ne comprend pas du tout l'intérêt de votre GROUP BY. Un GROUP BY ne doit être posé que s'il y a des calculs d'égrégat statistiques (MAX, SUM, COUNT, AVG, MIN...)

    A +

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

Discussions similaires

  1. ecriture dans un fichier ,boucle for + SQL
    Par lizardman dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2008, 17h39
  2. Comment faire un Sleep dans une boucle PL/SQL
    Par foster06 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 01/02/2008, 18h59
  3. boucle insert sql
    Par bernard26000 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/12/2007, 11h29
  4. Réponses: 4
    Dernier message: 28/04/2007, 22h42
  5. [MS SQL Server] comment faire des boucles en SQL ?
    Par Yorel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2006, 09h41

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