`

sql语句实现统计

SQL 
阅读更多
select t.id_ cusId,t.building_no_ buildingNO,t.house_no_ houseNO,t.room_no_ roomNO,
                    tb.name_ areaName,
                    tc.year_ chargeYear,
                 case
                      when  t.AREA_ID_ is null then
                       'all'
                      when t.AREA_ID_ is not null and t.BUILDING_NO_ is null then
                       'all'
         when t.AREA_ID_ is not null and
              (t.HOUSE_NO_ is null or t.ROOM_NO_ is null) then
          'part'
else
    t.CUS_NAME_
end cusName,
                     tc.is_owe_ isOwe,
                     tt.name_ cusTypeName,
                     t.tel_ cusTel,
                     sum(tc.heating_area_) heatingArea,
                     sum(nvl(cc.real_income_money_,0)) realIncomeMoney,
                     sum(nvl(decode(t.cus_type_id_,1,byp.JM_PRICE_,2,byp.DS_PRICE_,3,BYP.GJ_PRICE_)*tc.heating_area_,0)) deserveMoney,
                     nvl(sum(case when tc.IS_OWE_='1' then tc.OWE_MONEY_ end), 0) oweMoney
                       
from t_customer_infos t
left join t_cus_year_status tc on t.id_ = tc.cus_id_
left join t_base_areas tb on t.area_id_ = tb.id_
left join t_base_customer_types tt on t.cus_type_id_ = tt.id_
left join  (
select tch.cus_id_,tch.year_,sum(tch.real_income_money_) as real_income_money_
from t_cus_charges tch group by tch.year_,tch.cus_id_
) cc on tc.year_ = cc.year_ and t.id_ = cc.cus_id_
left join t_base_year_price byp on byp.year_ = tc.year_ and byp.status_ = '1'

where t.STATUS_='1' and t.heating_area_<>0
               GROUP BY GROUPING SETS((tc.year_),(tc.year_,t.area_id_,tb.name_),(tc.year_,t.area_id_,tb.name_,t.building_no_),
                    (tc.year_,t.area_id_,tb.name_,t.building_no_,t.house_no_),(tc.year_,t.area_id_,tb.name_,t.building_no_,t.house_no_,t.room_no_,t.cus_name_,tt.name_,t.tel_,tc.is_owe_,t.id_))
                    order by t.area_id_


其中的‘part’和‘all’,分别表示小计和总计,可以根据具体的需要修改;grouping sets是依次按照括号里面的内容进行分组。
分享到:
评论

相关推荐

    SQL语句,统计出班级的男女人数

    经典面试题目:有一个学生记录的表student,形式如下: name class sex 1 a 1(男) 2 b 2(女) 3 c 1 4 a...class 男(1) 女(2) a 3 1 b 0 1 c 1 0 用一句select语句实现

    pb通过sql语句实现分组小计统计

    通过sql语句实现分组小计功能,看看测试代码,认真分析

    库存收发存报表汇总统计数据库语句实现

    1.库存盘点收发存汇总表业务逻辑。 2.使用mssql数据库语句实现。 3.实时查询可以得出查询时间段的材料编码对应的期初、入库数、出库数、期末库存。 4.一条sql语句即可实现。

    用友U8_12.5按天统计库存 SQL语句

    支持用友U8_12.5及以上 根据期初库存与出入库单据统计某日库存量 可实现通过批号或序列号统计,汇总

    使用sql语句查询的数据按时间递增累加

    使用sql语句将查询的数据中的值按时间递增累加

    经典SQL语句大全

    10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...

    用SQL实现统计报表中的小计与合计的方法详解

    客户提出需求,针对某一列分组加上小计,合计汇总。网上找了一些有关SQL加合计的语句。都不是很理想。决定自己动手写。思路有三个:1.很多用GROUPPING和ROLLUP来实现。...SQL语句 代码如下:select * into #TB f

    SQL SERVER 分组求和sql语句

    您可能感兴趣的文章:分组后分组合计以及总计SQL语句(稍微整理了一下)MYSQL每隔10分钟进行分组统计的实现方法mysql使用GROUP BY分组实现取前N条记录的方法详解MySQL中的分组查询与连接查询语句sql server如何利用...

    数据透视表SQL语句入门

    上面那一句SQL语句的意思就是:从表材料进货明细表中取出定额名称及规格的值 例2、查询材料进货明细表的详细记录 SELECT * FROM [材料进货明细表$] 等价于: SELECT 序号, 定额名称,规格,日期,单位,数量 FROM ...

    游标.sql

    游标.sql

    T_sql 学习 这是我使用过总结的

    我使用过的sql 例子,包括,数据库备份、数据库表空间 查询、添加远程服务器

    Mybatis拦截器实现统计sql执行时间及打印完整sql语句

    NULL 博文链接:https://zhanghteye.iteye.com/blog/2373231

    超实用sql语句

    10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...

    HIVE-SQL开发规范.docx

    Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。 本文是Hive的开发...

    HiveSQL基础1.pdf

    hive是基于Hadoop的一...Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。

    MyBatis执行SQL并将结果映射成Java对象.docx

    5. Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中 该对象包括SQL语句 输入参数映射信息 输出结果映射信息 其中输入参数和输出结果的映射类型包括HashMap集合对象 POJO对象类型

    图书管理系统设计和SQL编程

    1. 根据数据库设计的基本思想,设计出...5. 用SQL语句实现数据库和表的建立,数据的输入;按照作者、出版社等信息统计;实现图书的借阅日期、借阅人等信息的修改;用SQL语句实现库存图书、借阅超期、个人借阅等查询。

    用SQL实现统计报表中的&quot;小计&quot;与&quot;合计&quot;的方法详解

    本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下

    sql经典语句一部分

    经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice ...

    简单讲解sql语句中的group by的使用方法

    1.概述 group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’...我们希望统计每一个用户订单的总金额,我们可以借助 group by 来实现: select Customer,sum(OrderPrice) as total_

Global site tag (gtag.js) - Google Analytics