mysql交表_MYSQL 交叉表

数据:

CREATE TABLE sitemvalue(

STCD INT ,

XMMC VARCHAR(20),

SValue DECIMAL(4,2) ,

PRIMARY KEY(stcd,xmmc)

)

INSERT INTO sitemvalue VALUES ('0001', 'ph', 7.0) ;

INSERT INTO sitemvalue VALUES ('0001', 'cod', 0.2) ;

INSERT INTO sitemvalue VALUES ('0001', 'do', 0.3) ;

INSERT INTO sitemvalue VALUES ('0001', 'wt', 1.1) ;

INSERT INTO sitemvalue VALUES ('0002', 'ph', 7.0) ;

INSERT INTO sitemvalue VALUES ('0002', 'do', 0.2) ;

INSERT INTO sitemvalue VALUES ('0002', 'wt', 0.2) ;

INSERT INTO sitemvalue VALUES ('0002', 'cod', 1.5) ;

不带TOTAL统计的:

SELECT IFNULL(STCD ,'total') AS STCD ,

SUM(IF(XMMC ='ph',SValue ,0)) AS 'ph',

SUM(IF(XMMC ='cod',SValue ,0)) AS 'cod',

SUM(IF(XMMC ='do',SValue ,0)) AS 'do',

SUM(IF(XMMC ='wt',SValue ,0)) AS 'wt'

FROM sitemvalue GROUP BY STCD

带TOTAL统计的:

SELECT IFNULL(STCD ,'total') AS STCD ,

SUM(IF(XMMC ='ph',SValue ,0)) AS 'ph',

SUM(IF(XMMC ='cod',SValue ,0)) AS 'cod',

SUM(IF(XMMC ='do',SValue ,0)) AS 'do',

SUM(IF(XMMC ='wt',SValue ,0)) AS 'wt'

FROM sitemvalue GROUP BY STCD

UNION

SELECT 'total' ,

SUM(IF(XMMC ='ph',SValue ,0)) AS 'ph',

SUM(IF(XMMC ='cod',SValue ,0)) AS 'cod',

SUM(IF(XMMC ='do',SValue ,0)) AS 'do',

SUM(IF(XMMC ='wt',SValue ,0)) AS 'wt'

FROM sitemvalue

带TOTAL统计的:

SELECT IFNULL(STCD ,'total') AS STCD ,

SUM(IF(XMMC ='ph',SValue ,0)) AS 'ph',

SUM(IF(XMMC ='cod',SValue ,0)) AS 'cod',

SUM(IF(XMMC ='do',SValue ,0)) AS 'do',

SUM(IF(XMMC ='wt',SValue ,0)) AS 'wt'

FROM sitemvalue GROUP BY STCD WITH ROLLUP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值