Mettre plusieurs enregistrements sur une seule ligne avec Procédures stockées
1 réponse
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)
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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)
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
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
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" <abc@hotmail.com> a écrit dans le message de
news:uOK9m5ljHHA.4040@TK2MSFTNGP03.phx.gbl...
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)
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
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)
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