MySQL_关于用嵌套表计算的可以不用 20161205
计算求和类的指标,其实用不到嵌套表,比如计算各城市产品分类的订单额。
如果要计算不重复的指标 比如一个用户一天下了多个订单 用这样的表计算一天有多少用户下单 这个用户肯定是去重的 下多个订单也应该视为一个用户
这个用嵌套表主要是为了逻辑理解清楚 一步步来,如果对数据库表很熟悉的话可以省去嵌套表的步骤
1、嵌套表
##C024_02 上周品类销售收入
SELECT CONCAT(b.分类ID,'-',a.产品分类) AS 商品分类
,SUM(IF(城市="城市A",销售确认额,NULL)) AS 城市A,SUM(IF(城市="城市B",销售确认额,NULL)) AS 城市B,SUM(IF(城市="城市C",销售确认额,NULL)) AS 城市C
,SUM(IF(城市="城市D",销售确认额,NULL)) AS 城市D,SUM(IF(城市="城市E",销售确认额,NULL)) AS 城市E
FROM (#上周一到本周一
SELECT 城市,a2.产品分类,SUM(销售额) AS 销售确认额
FROM `a005_account` AS a1
LEFT JOIN `a002_产品` AS a2 ON a1.产品ID=a2.产品ID
WHERE 应收日>=DATE_ADD(DATE(DATE_ADD(CURRENT_DATE,INTERVAL -WEEKDAY(CURRENT_DATE) DAY)),INTERVAL -1 WEEK) AND 应收日<DATE(DATE_ADD(CURRENT_DATE,INTERVAL -WEEKDAY(CURRENT_DATE) DAY))
GROUP BY 城市,a2.产品分类
) AS a
LEFT JOIN `a000_cate` AS b ON a.产品分类=b.产品分类
GROUP BY a.产品分类
ORDER BY b.分类ID
2、不用嵌套
##C024_02 上周品类销售收入
SELECT CONCAT(a3.分类ID,'-',a2.产品分类) AS 商品分类
,SUM(IF(城市="城市A",销售额,NULL)) AS 城市A,SUM(IF(城市="城市B",销售额,NULL)) AS 城市B,SUM(IF(城市="城市C",销售额,NULL)) AS 城市C
,SUM(IF(城市="城市D",销售额,NULL)) AS 城市D,SUM(IF(城市="城市E",销售额,NULL)) AS 城市E
FROM `a005_account` AS a1
LEFT JOIN `a002_产品` AS a2 ON a1.产品ID=a2.产品ID
LEFT JOIN `a000_cate` AS a3 ON a2.产品分类=a3.产品分类
WHERE 应收日>=DATE_ADD(DATE(DATE_ADD(CURRENT_DATE,INTERVAL -WEEKDAY(CURRENT_DATE) DAY)),INTERVAL -1 WEEK) AND 应收日<DATE(DATE_ADD(CURRENT_DATE,INTERVAL -WEEKDAY(CURRENT_DATE) DAY))
GROUP BY a2.产品分类
ORDER BY a3.分类ID
MySQL_关于用嵌套表计算的可以不用 20161205的更多相关文章
- PL/SQL 嵌套表变长数组和索引表[转]
关于PL/SQL中这三种数组的介绍,不想写了.转一篇日志吧…… 链接:http://www.blogjava.net/decode360/archive/2008/08/08/280825.html ...
- oracle 嵌套表
--自定义对象 CREATE OR REPLACE TYPE Fas_checksheetinfo_line_obj AS OBJECT( CSID_ID VARCHAR2(32 ...
- oracle ibatis 存储过程 返回游标 嵌套表
自己解决问题了 问题总结: 1.index by表不能存储在数据库中的type中,故选择嵌套表. 2.ibatis不支持oracle的复合数据类型的返回.(个人理解) 3.替代方案:用返回oracle ...
- oracle:变长数组varray,嵌套表,集合
创建变长数组类型 ) ); 这个变长数组最多可以容纳两个数据,数据的类型为 varchar2(50) 更改元素类型的大小或精度 可以更改变长数组类型和嵌套表类型 元素的大小. ALTER TYPE ...
- Rails-Treasure chest2 嵌套表单;
嵌套表单1-1 嵌套表单1-多 选日期时间的UI (一个jquery Plugin) 拆除前后台css和js Rich Editor, 显示输入的HTML tag 批次编辑/删除 嵌套表单1-1 核心 ...
- 嵌套表用法详解(PLSQL)
嵌套表 嵌套表是一种类似于索引表的结构,也可以用于保存多个数据,而且也可以保存复合类型的数据 嵌套表指的是一个数据表定义事同时加入了其他内部表的定义,这一概念是在oracle 8中引入的,它们可以使用 ...
- Oracle嵌套表
一.介绍 1.定义 嵌套表是表中之表.一个嵌套表是某些行的集合,它在主表中表示为其中的一列.对主表中的每一条记录,嵌套表可以包含多个行.在某种意义上,它是在一个表中存储一对多关系的一种方法. ...
- excel表计算和计算器计算结果不一致
excel表计算和计算器计算结果不一致 : 建议安装完excel进行精度设置:
- (转)oracle嵌套表示例
本文转载自:http://www.cnblogs.com/gisdream/archive/2012/04/13/2445291.html ----嵌套表:就是把一个表中的字段定义为一个表,这个字段表 ...
随机推荐
- 无锁队列以及ABA问题
队列是我们非常常用的数据结构,用来提供数据的写入和读取功能,而且通常在不同线程之间作为数据通信的桥梁.不过在将无锁队列的算法之前,需要先了解一下CAS(compare and swap)的原理.由于多 ...
- 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
转载请注明出处:http://www.cnblogs.com/xiaodf/ 4. 为CDH 5集群添加Kerberos身份验证 4.1 安装sentry1.点击“操作”,“添加服务”:2.选择sen ...
- CentOS 7 编译安装 Code::Blocks
CentOS 7 编译安装 Code::Blocks yum install cairo-devel yum install pango-devel yum install atk-devel yum ...
- 排序算法总结(四)快速排序【QUICK SORT】
感觉自己这几篇都是主要参考的Wikipedia上的,快排就更加是了....wiki上的快排挺清晰并且容易理解的,需要注意的地方我也添加上了注释,大家可以直接看代码.需要注意的是,wikipedia上快 ...
- SpringMVC——form标签的使用
----------------------------------------------------------------------------------- <%@page impor ...
- error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义
error LNK2005: _DllMain@ 已经在 dllmain.obj 中定义 今天遇到了同样的问题,搜索搜到了这里,后来解决了........ 创建解决方案时,用的是WIN32 DLL,添 ...
- FineUI中Newtonsoft.Json版本报错解决办法
1.清空bin下的Newtonsoft.Json.dll 2.使用Nuget安装最新版本的Newtonsoft.Json.dll,安装脚本为 Install-Package Newtonsoft.Js ...
- sqlserver 跨服务器访问数据
需求:两个一模一样的表,分别分布在两个服务器的数据库上,现在要在一个表中,查看这两个表的内容,并让Id排序 1:在本地数据库查询分析器中,运行以下两段语句: --创建链接服务器 exec sp_add ...
- bootstrap表格内容垂直居中
td{ vertical-align: middle !important;}
- oracle直通车6关于rman备份恢复数据文件,以及创建分区表的实验
1.创建一张表,在表上创建一个索引,分别查询表,索引各自分配了多少个extents,多少个数据块以及总共占用空间的大小(bytes). 答:创建一张表t,为字段object_id创建索引t_objec ...