查询语句:
set group_concat_max_len=100000;
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(IF(''',DATE_FORMAT(p.addtim, '%Y-%m-%d'),''' = ''',
DATE_FORMAT(p.addtim, '%Y-%m-%d'),
''', 1, 0)) AS ''',
DATE_FORMAT(p.addtim, '%Y-%m-%d'), ''''
)
) INTO @sql
From docpatrel p INNER JOIN doctordetail d on d.id = p.docid Where DATE_FORMAT(p.addtim, '%Y-%m-%d') >= '2016-10-01' and DATE_FORMAT(p.addtim, '%Y-%m-%d') <= '2016-10-02' and p.patid!=9999;
SET @sql = CONCAT('Select d.realname, ', @sql,
' From docpatrel p
INNER JOIN doctordetail d on d.id = p.docid
where DATE_FORMAT(p.addtim, ''%Y-%m-%d'') >= ''2016-10-01'' and DATE_FORMAT(p.addtim, ''%Y-%m-%d'') <= ''2016-10-02'' and p.patid!=9999
GROUP BY d.id,d.realname');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;