MySQL列转行统计数据
来源:互联网 发布:网络如何发布广告赚钱 编辑:程序博客网 时间:2024/06/05 17:12
笔者在开发的过程中遇到了这样的问题。
其中item_id是固定的字典。值是死的。
其中item_id 等于 1,2,3的值是每一个work_quoted_id都需要相乘的。
相当于一份订单人工费和施工人数以及施工天数都是一定存在的并且是相乘的关系。
其他的item_id的值是需要相加的。
所以,运算的规则是
item1、item2、item3的quantity值是要相乘的。在加上item4、item5、item6的quantity值。
所以上述期望的值应该是670
mysql 提供了sum求和函数。但是没有提供相乘的函数。
但还是有办法做的。笔者这里采用了列传行的办法进行统计数据。 sql如上
SELECT target.workDays * target.workFee * target.workDaysFROM (SELECT max(case item_id WHEN '1' THEN quantity END ) as workFee, max(case item_id when '2' THEN quantity END ) as workerNumber, max(case item_id WHEN '3' THEN quantity END ) as workDaysfrom order_worker_quote_detail WHERE work_quote_id=1) as target;
我们可以拿到运行结果
在这里读者可能不是很明白。
其实关键在于 case when then
max(case item_id when '2' THEN quantity END ) as workerNumber,
这里笔者可以给出一个demo
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;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 Date ,max(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,max(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信FROM TabNameGROUP BY Date
可以得到运行结果
demo参考自: http://www.cnblogs.com/lhj588/p/3315876.html
阅读全文
0 0
- MySQL列转行统计数据
- mysql 列转行
- Mysql列转行
- mysql 列转行
- mysql中列转行
- MySQL列转行
- mysql 的列转行
- MYSQL 列转行
- mysql 动态列转行
- mysql行转列、列转行
- mysql group_concat列转行
- mysql行转列、列转行
- mysql行转列、列转行
- mysql行转列、列转行
- mysql 列转行的技巧
- mysql 列转行,合并字段
- MySQL 列转行统计查询
- mysql 列转行,合并字段
- swift 中下划线
- POJ 3255 RoadBlocks(次短路+dijkstra变形)
- 有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
- 向eclipse中添加user library的方式
- 日期计算的问题
- MySQL列转行统计数据
- CDH Disk Balancer 磁盘数据均衡
- Android studio gradle 版本及 gradle plugin版本,Android studio 连接夜神模拟器的命令
- HUBUST 1186 青蛙过河(dp)
- 安卓的权限问题
- Centos 下安装php7以及其扩展
- Java实现-子集
- Effective C++第三章-资源管理-1
- TABLE中子元素获取