Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8927

group_concat on multiple tables

$
0
0

Hello, I have been spinning my wheels for countless hours trying to figure this one out. Hope someone can lend a hand! ;-)

 

I have 4 tables:

1) Field_Tickets - Field_Tickets.field_tickets_id is the main field I wish to group on.

2) Field_Tickets_Has_Employees - This is joined by Field_Tickets.field_tickets_id=Field_Tickets_Has_Employees.field_tickets_id.

3) Employees - This is joined by Field_Tickets_Has_Employees.employees_id=Employees.employees_id

4) Employee_Roles - This is joined by Field_Tickets_Has_Employees.employee_roles_id=Employee_Roles.employee_roles_id

 

I would like to create a group concatenated string in crystal that looks like the following result:

Supervisor        Lynn Jones

Assistant               Alan Cyr

 

I had to write two separate statements, in the Command window, to achieve what I'm after and it still doesn't associate the correct role with the corresponding employee. I need to write it in one select group_concat but have been spinning my wheels for too many hours now.  Here's the sql I have written:


 

select ft.field_tickets_id,

 

(SELECT GROUP_CONCAT(CONCAT(emp.employee_first_name, ' ',emp.employee_last_name, '\n') SEPARATOR'') from employees AS emp WHERE (SELECT DISTINCT(fte.employees_id) from field_tickets_has_employees as fte WHERE ft.field_tickets_id=fte.field_tickets_id AND fte.employees_id=emp.employees_id AND IsNull(fte.deleted_at) AND fte.employee_roles_id IN (281, 282, 283, 284) group by ft.field_tickets_id)) AS employeelist,

 

(SELECT GROUP_CONCAT(CONCAT(emprole.employee_role_name, '', '\n') SEPARATOR '') from employee_roles AS emprole WHERE (SELECT DISTINCT(fte2.employees_id) from field_tickets_has_employees as fte2 WHERE ft.field_tickets_id=fte2.field_tickets_id AND fte2.employee_roles_id=emprole.employee_roles_id AND IsNull(fte2.deleted_at) AND fte2.employee_roles_id IN (281, 282, 283, 284) group by ft.field_tickets_id)) AS emplistroles

from field_tickets AS ft

 

INNER JOIN jobs ON ft.jobs_id=jobs.jobs_id where

IsNull(ft.deleted_at)


Thanks!

Mark


Viewing all articles
Browse latest Browse all 8927

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>