Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mettre plusieurs enregistrements sur une seule ligne avec Procédures stockées

1 réponse
Avatar
Rosalie Mignon
Bonjour

Je cherche depuis quelques jours et ne trouve pas la facon de faire.
Pourtant ca doit être assez simple.. J'ai fait des tentatives avec des
cursors mais sans succès. Je veux utiliser une procédures stockées pour
accélérer l'extraction.


J'ai une table Etudiant

etu_id (clé)
etu_nom
etui_prenom

Select * from Etudiant
etu_id etu_nom etu_prenom
1 A A
2 B B
3 C C

J'ai une table Resultat
fk_etu_id
res_id
res_reponse (texte)

select * from Resultat
fk_etu_id res_id res_reponse
1 1 bleu
1 1 oui
2 1 1
3 1 texte
3 1 2

Je veux faire une nouvelle table avec la concaténation des réponses pour
chaque client (sur une seule ligne) selon le numéro du res_id. Cette table
sera par la suite extraite en format texte.

1) J'ai créé ma table X. (ca c'est OK)
2) J'insere dans la table X les fk_etu_id (j'utilise une requête avec un
@etudiant et @res_id (ca c'est OK)

3) et par la suite je met a jour les champs reponse_1 et reponse_2. Et
c'est la que j'en arrache. Je ne sais comment faire

Voici le résultat attendus...
fk_etu_id reponse_1 reponse_2
1 2 4
2 1
3 1 2

Avez vous une solution pour pouvoir extraire les réponses et les mettre dans
ma table dans les champs resultat_1 et resultat_2


Merci de votre aide

Rosalie

1 réponse

Avatar
Philippe TROTIN [MS]
UPDATE X
SET reponse_1 = r.res_reponse
FROM X
INNER JOIN Resultat r ON X.fk_etu_id = r.fk_etu_id
WHERE r.res_id = 1

UPDATE X
SET reponse_2 = r.res_reponse
FROM X
INNER JOIN Resultat r ON X.fk_etu_id = r.fk_etu_id
WHERE r.res_id = 2

Si c'est pour plus de réponses, il faut peut être variabiliser tout cela en
utilisant du SQL dynamique (car le nom de colonnes va changer).


Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________
"Rosalie Mignon" a écrit dans le message de
news:
Bonjour

Je cherche depuis quelques jours et ne trouve pas la facon de faire.
Pourtant ca doit être assez simple.. J'ai fait des tentatives avec des
cursors mais sans succès. Je veux utiliser une procédures stockées pour
accélérer l'extraction.


J'ai une table Etudiant

etu_id (clé)
etu_nom
etui_prenom

Select * from Etudiant
etu_id etu_nom etu_prenom
1 A A
2 B B
3 C C

J'ai une table Resultat
fk_etu_id
res_id
res_reponse (texte)

select * from Resultat
fk_etu_id res_id res_reponse
1 1 bleu
1 1 oui
2 1 1
3 1 texte
3 1 2

Je veux faire une nouvelle table avec la concaténation des réponses pour
chaque client (sur une seule ligne) selon le numéro du res_id. Cette
table sera par la suite extraite en format texte.

1) J'ai créé ma table X. (ca c'est OK)
2) J'insere dans la table X les fk_etu_id (j'utilise une requête avec un
@etudiant et @res_id (ca c'est OK)

3) et par la suite je met a jour les champs reponse_1 et reponse_2. Et
c'est la que j'en arrache. Je ne sais comment faire

Voici le résultat attendus...
fk_etu_id reponse_1 reponse_2
1 2 4
2 1
3 1 2

Avez vous une solution pour pouvoir extraire les réponses et les mettre
dans ma table dans les champs resultat_1 et resultat_2


Merci de votre aide

Rosalie