Requete avec un loop

Résolu
cs_Rouk
Messages postés
70
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
17 janvier 2010
- 6 déc. 2004 à 11:54
cs_Rouk
Messages postés
70
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
17 janvier 2010
- 9 déc. 2004 à 12:10
Bonjour,
Je dois realiser un script qui recupere les donnees d'une table pour les afficher dans une autre suivant une condition.

Exemple :
table 1 :
num_1, ref_A, commande_1, article_1, prix
num_1, ref_A, commande_1, article_2, prix
num_1, ref_A, commande_1, article_3, prix
num_1, ref_A, commande_2, article_10, prix
num_1, ref_A, commande_2, article_11, prix

Le script

Autre table :
num_1, ref_A, commande_1, Total_prix
num_1, ref_A, commande_2, Total_prix

Je vois comment realiser le script... mais je ne connais pas bien Sql

declare @Rows int
declare @Nb int
set @Nb = 0
set @Rows = (select count(*) from scheme.stockm)

ensuite je suis bloque pour faire la boucle et pour recuperer les donnees...

Si quelqu'un peut me donner un coup de main.
Merci de votre aide.

2 réponses

cs_Rouk
Messages postés
70
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
17 janvier 2010
1
9 déc. 2004 à 12:10
J'ai trouver une solution avec les cursors

--Declaration du curseur avec la requete
declare MyCursor cursor forward_only static for
select scheme.stockm.product from scheme.stockm where scheme.stockm.warehouse = 'A1'
--Ouverture du curseur
open MyCursor
declare @product as char(20)

set @Nb = 1
set @Rows = (select count(*) from scheme.stockm)

--Ma boucle
while @Nb <> @Rows
begin
--Lecture des donnees une par une
fetch next from MyCursor into @product
print @product
set @Nb = @Nb + 1
end
close MyCursor
3
cs_Rouk
Messages postés
70
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
17 janvier 2010
1
7 déc. 2004 à 15:42
J'arrive a faire ma boucle avec un "while" mais sans loop...

Mais j'ai un autre probleme, comment selectionner une ligne ?

Lorsque je fais un SELECT * FROM MaBase, j'obtient le resultat sous forme de tableau, de la ligne 1 a n

Je voudrais que a l'interieur de la boucle, je puisse lire les infos une part une de la ligne 1, 2, ..., n

Par exemple,
while @Nb <> @Rows
begin
SELECT * FTOM MaBase Where La_Ligne_Que_Je_Veut_(@Nb)
set @Nb = @Nb + 1
end

C'est possible cela ?

Merci de votre aide.
0