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
时间: 2024-11-06 11:49:18

MySQL_关于用嵌套表计算的可以不用 20161205的相关文章

Oracle嵌套表存储格式浅析

Oracle嵌套表很少用,下面来研究下其如何存储的.用一个例子,一个用户对应对个部门. SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Rele

oracle 嵌套表

--自定义对象 CREATE OR REPLACE TYPE Fas_checksheetinfo_line_obj AS OBJECT(  CSID_ID           VARCHAR2(32),--报账单明细ID  CSI_ID            VARCHAR2(32),--报账单ID  CSID_GENERATEDATE DATE,        --费用发生日期  CSID_TYPE         VARCHAR2(32),--费用类型  CSID_SUMMARY     

嵌套表用法详解(PLSQL)

嵌套表 嵌套表是一种类似于索引表的结构,也可以用于保存多个数据,而且也可以保存复合类型的数据 嵌套表指的是一个数据表定义事同时加入了其他内部表的定义,这一概念是在oracle 8中引入的,它们可以使用SQL进行访问,也可以进行动态扩展. 创建表指定嵌套表存储空间名称 Create table 表名称( 字段名称 类型 -- 嵌套表字段名称 嵌套表类型 )NESTED TABLE 嵌套表字段名称 STORE AS 存储空间名称: 定义部门表 DROP TABLE department Create

table 表提交数据(不用对应input版)

<!doctype html> <html> <head><title>table 表提交数据(不用对应input版)</title></head> <body> <div id="table-div"> <table id="table-batabase"> <tr><th>编号</th><th>名字</

嵌套表SHAPE

SQL语法 SHAPE {<master query>} APPEND ({ <child table query> } RELATE <master column> TO <child column>) AS <column table name> ASP访问嵌套子表 Set rsISCItem = rs("table name").value

子账号表的设计(不用递归实现查询,同一张表做外键)

最近公司在做<资管系统>账号管理部分需要得到所有子账号.父账号等等信息.个人觉得用递归查询比较繁琐,于是设计了以下表 关键字段:账号id,父账号.顶级账号.账号层次(也就是树的级别). 查询思路:查找顶级账号用层这个字段直接搞定 查找某个账号的子账号用该账号的顶级账号和层搞定 查找父账号用该账号的顶级账号和层搞定 设计难点:一张表外键关联到自己.添加修改删除时对数据的有效性有很大的保障 提供源码(包含查询方法),需要其他字段自行增加 (勿喷) 表和数据 -- -----------------

ajax序列化表单,再也不用通过data去一个个的传值了

jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化 这样,我们就可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax(), 举例如下:

ScrollView+Fragment+ListView嵌套ListView,麻麻再也不用担心我不会写嵌套

前言 之前写了一篇文章 android ListView/GridView与ScrollView嵌套的滑动冲突解决 介绍了如何解决ScrollView与AdapterView的嵌套,但是没有给出demo,那是因为那些代码比较多,而且是在手头的项目里,业务逻辑代码比较多,所以第一时间没有分享给大家. 今天终于有空把这些代码全部抽离了出来,并且去掉了业务代码和不必要的内容,以便大家能够更好的学习这个知识. 先贴一个效果图吧: 之前项目里我是使用复写ScrollView的onInterceptTouc

计算数据库中各个表的数据量和每行记录所占用空间--添加架构信息-读后感及知识整理

参考文章: SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 监控SQLServer 数据库表每天的空间变化情况 仔细拜读上面三位的文章,不会的知识点又参考了MSDN,巩固了知识点如下: 知识点: 1.表的架构信息,涉及的系统对象 sys.schemas 和 INFORMATION_SCHEMA.TABLES,但后者不是官方推荐方式,