Nó hoạt động giống như FS_amount
, chỉ cần thêm các cột mới vào mã của bạn để tạo các cột động:
SELECT GROUP_CONCAT(DISTINCT CONCAT(
'MAX(IF(month = ''',
month,
''' and year(date) = ',
year(date),
', FS_amount, NULL)) AS `',
CONCAT('FA_',month),
'_',
year(date),
'`, ',
'MAX(IF(month = ''',
month,
''' and year(date) = ',
year(date),
', AS_amount, NULL)) AS `',
CONCAT('AS_',month),
'_',
year(date),
'`'
)
order by date
) INTO @sql
FROM tmp_results;
Bạn nên xem mã mà các câu lệnh tạo (ví dụ:bằng cách thêm tạm thời select @sql;
), mặc dù sẽ khá dễ dàng để thêm nhiều cột hơn nữa trong trường hợp bạn cần chúng.