PostgreSQL中的动态交叉表

时间:2014-09-11 03:28:42

标签: mysql sql postgresql postgresql-9.2

我有一个名为e-classroom的数据库,其中包含表格:

tbl_enrollment tbl_enrollment

tbl_feenames

tbl_feenames

tbl_feetypes

tbl_feetypes

tbl_payments

tbl_payments

tbl_pupil tbl_pupil

这是我从这些表中得出的观点:

view_paylist view_paylist

我有这个MySQL查询将转动这些表:

 SET @sql = NULL;
 SELECT
 GROUP_CONCAT(DISTINCT
 CONCAT('MAX(IF(vp.cfeename = ''',vp.cfeename,
        ''', vp.nfeetypeamount, NULL)) AS ',
 CONCAT("`",vp.cfeename,"`")
    )
  ) INTO @sql
 FROM view_paylist AS vp;

 SET @sql = CONCAT('SELECT vp.clrn
                , vp.name
                , vp.cgrdlvl
                , csection
                , vp.csy, ', @sql, ' 
               FROM view_paylist vp
 where vp.cgrdlvl like ''%''
 group by vp.clrn
                ');

 PREPARE stmt FROM @sql;
 EXECUTE stmt;
 DEALLOCATE PREPARE stmt;

这是枢轴的结果:

pivot

字段“sample”是我向tbl_feenames新添加的数据。我想要的是如何使用Crosstab在PostgreSQL中实现这种动态旋转?

0 个答案:

没有答案