1

I'm trying to create

select c.FullName, b.*, e.Description as Posisilama, f.Description as Posisibaru, g.Description,
       GROUP_CONCAT('b.nilai' SEPARATOR ',') AS nilai
from penilaian_header a
    left join penilaian_detail b on a.KodePenilaian = b.KodePenilaianH
    left join employee c on a.Nip = c.Nip
    left join HistoryPosition d on a.KodePenilaian = d.KodePenilaian    
    left join Position e on d.OldPosition = e.PositionCode
    left join Position f on d.NewPosition = f.PositionCode
    left join Outlet g on c.OutletCode = g.OutletCode    

Can you check my query, because I got this error:

Incorrect syntax near 'SEPARATOR'

What I need to do is to make multiple row result in to one row SQL. Because my result is like this

enter image description here

I found a solution. I use pivot.

select * from 
            (
             select row, c.Nilai,b.Fullname,a.KodePenilaian,d.Description from penilaian_header a 
            left join employee b on a.Nip = b.Nip 
            left join outlet d on a.Outlet = d.OutletCode
            left join (select ROW_NUMBER() OVER(PARTITION BY KodePenilaianH ORDER BY idPenilaiand DESC) AS Row, Nilai,KodePenilaianH from penilaian_Detail
            ) c on a.KodePenilaian = c.KodePenilaianH where a.Outlet like '%%' and Periode like '%%'
            ) nilai 
            pivot
            (
            sum(nilai)
            for row in ([1],[2],[3],[4],[5])
            ) piv;
pyb
  • 4,813
  • 2
  • 27
  • 45
Boby
  • 1,131
  • 3
  • 20
  • 52

1 Answers1

1

miss a group by clause,check this : How to use GROUP_CONCAT in a CONCAT in MySQL

i will write like this :

select c.FullName, b.*, e.Description as Posisilama
, f.Description as Posisibaru, g.Description,
       GROUP_CONCAT('b.nilai' SEPARATOR ',') AS nilai
from penilaian_header a
    left join penilaian_detail b on a.KodePenilaian = b.KodePenilaianH
    left join employee c on a.Nip = c.Nip
    left join HistoryPosition d on a.KodePenilaian = d.KodePenilaian    
    left join Position e on d.OldPosition = e.PositionCode
    left join Position f on d.NewPosition = f.PositionCode
    left join Outlet g on c.OutletCode = g.OutletCode  
group by  c.FullName, b.*, e.Description 
, f.Description , g.Description
Community
  • 1
  • 1
miranda
  • 26
  • 1