像行一样的表转换

时间:2014-08-20 13:02:04

标签: mysql rows

我正在创建类似

的报告
   fees     name   amount
  college  deepak   1000
  school   deepak   2000

我需要如下表所示

 name       College       School   
 deepak      1000          2000

这是一个例子,我将获得多个费用和名称

2 个答案:

答案 0 :(得分:0)

如果您事先了解费用类型,则问题很简单

select name, 
       sum(if(fees='college',amount,0)) as college
       sum(if(fees='school',amount,0)) as school
from userfees
group by name

如果您不知道查询中可能会出现哪些费用,那么它会变得更加复杂。

答案 1 :(得分:0)

试试这个。

SELECT name, 
MAX(IF(fees='college',amount,0)) AS 'College',
MAX(IF(fees='school',amount,0)) AS 'School'
FROM tbl1
GROUP BY name;

<强> FIND SQL FIDDLE HERE