我有一個SQL查詢來顯示有關公司的信息。其中一列叫做PieceType,一家公司可以有很多種類型,每種類型都有數量。所以我想要將每件作品的類型顯示爲一列,然後顯示其中的數量。所以每種類型都有自己的專欄。數據透視表錯誤
因此,這將是這樣的:
我已經在這裏創造的樣本數據庫:http://www.sqlfiddle.com/#!9/13230/4
SET group_concat_max_len=4294967294;
SET @COLUMNS = NULL;
/* Build columns to pivot */
SELECT GROUP_CONCAT(
DISTINCT CONCAT(
'CASE WHEN jp.PieceType = "',
jp.PieceType ,
'" THEN 1 ELSE NULL END AS ',
jp.PieceType
)
) INTO @COLUMNS
FROM job_pieces jp;
/* Build full query */
SET @SQL = CONCAT(
'SELECT
c.Name,
',@COLUMNS'
FROM customer c
LEFT JOIN job_new jn ON c.JobID = jn.ID
LEFT JOIN job_pieces jp ON c.JobID = jp.JobID
WHERE c.Company_ID = 123
GROUP BY c.ID'
);
/* Prepare and execute the query*/
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
但是當我運行查詢,我得到這個錯誤:
Incorrect parameters in the call to native function 'CONCAT'