MYSQL 行转列,列转行

-- ----------------------------
-- Table structure for `TabName`
-- ----------------------------
DROP   TABLE   IF EXISTS `TabName`;
CREATE   TABLE   `TabName` (
   `Id` int (11) NOT   NULL   AUTO_INCREMENT,
   ` Name ` varchar (20) DEFAULT   NULL ,
   ` Date ` date   DEFAULT   NULL ,
   `Scount` int (11) DEFAULT   NULL ,
   PRIMARY   KEY   (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT   CHARSET=utf8;
 
-- ----------------------------
-- Records of TabName
-- ----------------------------
INSERT   INTO   `TabName` VALUES   ( '1' , '小说' , '2013-09-01' , '10000' );
INSERT   INTO   `TabName` VALUES   ( '2' , '微信' , '2013-09-01' , '20000' );
INSERT   INTO   `TabName` VALUES   ( '3' , '小说' , '2013-09-02' , '30000' );
INSERT   INTO   `TabName` VALUES   ( '4' , '微信' , '2013-09-02' , '35000' );
INSERT   INTO   `TabName` VALUES   ( '5' , '小说' , '2013-09-03' , '31000' );
INSERT   INTO   `TabName` VALUES   ( '6' , '微信' , '2013-09-03' , '36000' );
INSERT   INTO   `TabName` VALUES   ( '7' , '小说' , '2013-09-04' , '35000' );
INSERT   INTO   `TabName` VALUES   ( '8' , '微信' , '2013-09-04' , '38000' );
 
 
-- ------------------------
-- 查看数据
-- ------------------------
SELECT    * from   TabName ;

MYSQL 行转列,列转行_第1张图片

-- ------------------------
-- 列转行统计数据
-- ------------------------
SELECT   Date   ,
MAX ( CASE   NAME   WHEN   '小说'   THEN   Scount ELSE   0 END   ) 小说,
MAX ( CASE   NAME   WHEN   '微信'   THEN   Scount ELSE   0 END   ) 微信
FROM   TabName 
GROUP   BY   Date    <br><br>

MYSQL 行转列,列转行_第2张图片


  

-- ------------------------
-- 行转列统计数据
-- ------------------------

MYSQL 行转列,列转行_第3张图片

<br> select
     Date , group_concat( NAME , '总量:' ,Scount) as   b_str from     TabName
  group   by   Date

MYSQL 行转列,列转行_第4张图片

select   Date , NAME , group_concat( NAME , '总量:' ,Scount) as   b_str from     TabName
  group   by   Date   , NAME


你可能感兴趣的:(MYSQL 行转列,列转行)