create table T_Test(
Name varchar(10),
Date datetime,
I int
);
insert into T_Test
select 'A','2017-08-01',1000 union all
select 'B','2017-08-01',1000 union all
select 'C','2017-08-01',3000 union all
select 'D','2017-08-01',6000 union all
select 'E','2017-08-01',5000 union all
select 'F','2017-08-01',4000 union all
select 'G','2017-08-01',2000 union all
select 'A','2017-08-02',1000 union all
select 'B','2017-08-02',1000 union all
select 'C','2017-08-02',2000 union all
select 'D','2017-08-02',5000 union all
select 'E','2017-08-02',4000 union all
select 'F','2017-08-02',3000 union all
select 'G','2017-08-02',2000 union all
select 'A','2017-08-03',1000 union all
select 'B','2017-08-03',2000 union all
select 'C','2017-08-03',5000 union all
select 'D','2017-08-03',1000 union all
select 'E','2017-08-03',3000 union all
select 'F','2017-08-03',3000 union all
select 'G','2017-08-03',4000
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(c.Date = ''',
c.Date,
''', I, 0)) AS ''',
c.Date, ''''
)
)
INTO @sql
FROM T_Test c;
SET @sql = CONCAT('Select c.name, ', @sql,
' From T_Test c
Group by c.name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
以后问问题请把表与数据也发放出来