最近有需求是需要根据值然后转换展示。
原来的sql检索出来的值为:
最终需要的值的格式为:
在mysql 中,实现的sql为:
SELECT beneficiaryID,k_user.RealName,k_user.FullName,k_user.mobile,
SUM(CASE operationType WHEN 1 THEN JFS ELSE 0 END) AS '1',
SUM(CASE operationType WHEN 2 THEN JFS ELSE 0 END) AS '2',
SUM(CASE operationType WHEN 3 THEN JFS ELSE 0 END) AS '3',
SUM(CASE operationType WHEN 4 THEN JFS ELSE 0 END ) AS '4',
SUM(CASE operationType WHEN 5 THEN JFS ELSE 0 END) AS '5',
SUM(CASE operationType WHEN 6 THEN JFS ELSE 0 END) AS '6',
SUM(CASE operationType WHEN 7 THEN JFS ELSE 0 END) AS '7',
SUM(CASE operationType WHEN 8 THEN JFS ELSE 0 END) AS '8',
SUM(CASE operationType WHEN 9 THEN JFS ELSE 0 END) AS '9',
SUM(CASE operationType WHEN 10 THEN JFS ELSE 0 END) AS '10',
SUM(CASE operationType WHEN 11 THEN JFS ELSE 0 END) AS '11',
SUM(CASE operationType WHEN 12 THEN JFS ELSE 0 END) AS '12',
SUM(CASE operationType WHEN 13 THEN JFS ELSE 0 END) AS '13',
SUM(CASE operationType WHEN 14 THEN JFS ELSE 0 END) AS '14',
SUM(CASE operationType WHEN 15 THEN JFS ELSE 0 END) AS '15'
FROM T LEFT JOIN k_user ON T.beneficiaryID = k_user.UserName
GROUP BY beneficiaryID,k_user.RealName,k_user.FullName,k_user.mobile
中间这段sql 在数据库是拼接起来的。
是根据另外一个表,检索出来所有的operationType,然后循环拼接。
之前也有做过datatable里面行专列,后续再来记录。