0
votes

Comment concaténer toutes les entrées retournées par une sous-requête jointe (liée à l'ID de la table principale) dans une seule colonne combinée?

Disons que j'ai une table de pilotes principale appelée employé avec les données et colonnes suivantes: xxx

et j'ai une autre table appelée employé_feedback avec les données et colonnes suivantes: xxx

avec les données de l'employé et employé_feedback tables, je veux Ma requête Pour pouvoir retourner toutes les lignes de l'employé et concaténer tous les "feedbacks de l'employé" associés "de employé_feedback dans une seule colonne par employé. Cela ressemblerait à ceci: xxx

Quelle serait une bonne requête pour faire cela? J'ai essayé ce qui suit sans succès: xxx

suis-il manquant un détail mineur? Merci d'avance!


0 commentaires

3 Réponses :


1
votes

Vous devez ajouter un groupe groupe par Clause à la fin: xxx

edit: y compris vos filtres dans le commentaire, vous Peut essayer ce qui suit: xxx


4 commentaires

Merci. Question: Si je voulais ajouter une clause de filtrage qui n'apporte que des commentaires qui ne sont pas nuls / vierges ou «pas de commentaire», comment puis-je être capable de réécrire ma requête pour faire cela?


@Johnwick, vous êtes la bienvenu. Ensuite, vous devez ajouter un où Clause Rejoignez Employee_feedback EF sur ef.employe_id = e.employee_id où ... comme quoi voulez-vous filtrer. groupe par doit toujours rester à la fin (après où clause dans ce cas).


Merci, tu es toujours super utile!


@Johnwick merci, trop cher ami :)



1
votes

Avez-vous essayé d'ajouter groupe par e.employee_id code> à la fin de la requête comme celle

select employee_name
 , employee_car
 , employee_age
 , listagg(feedback_comment_Tx, ' ') within group (order by e.employee_id) 
   from employee e join employee_feedback ef ON ef.employee_id = e.employee_id 
    group by e.employee_id


2 commentaires

Merci, que si je voulais ajouter une clause de filtrage qui apporte uniquement des commentaires qui ne sont pas nuls / vierges ou «aucun commentaire», comment puis-je être capable de réécrire ma requête pour faire cela?


Sélectionnez Employee_Name, Employee_car, Employee, Listagg (feedback_Comment_tx, '') Au sein du groupe (commande par e.employe_id) à partir de l'employé e joindre employé_feedback ef sur ef.employe_id = E.employee_id et ef. feedback_comment_tx n'est pas un groupe NULL par e.employe_id



2
votes
select employee_name
     , employee_car
     , employee_age
     , listagg(feedback_comment_Tx, ' ') within group (order by ef.EMPLOYEE_FEEDBACK_ID)
  from employee e
  join employee_feedback ef ON ef.employee_id = e.employee_id
  group by e.employee_id;

0 commentaires