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是依次按照括号里面的内容进行分组。
分享到:
相关推荐
经典面试题目:有一个学生记录的表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语句实现
通过sql语句实现分组小计功能,看看测试代码,认真分析
1.库存盘点收发存汇总表业务逻辑。 2.使用mssql数据库语句实现。 3.实时查询可以得出查询时间段的材料编码对应的期初、入库数、出库数、期末库存。 4.一条sql语句即可实现。
支持用友U8_12.5及以上 根据期初库存与出入库单据统计某日库存量 可实现通过批号或序列号统计,汇总
使用sql语句将查询的数据中的值按时间递增累加
10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...
客户提出需求,针对某一列分组加上小计,合计汇总。网上找了一些有关SQL加合计的语句。都不是很理想。决定自己动手写。思路有三个:1.很多用GROUPPING和ROLLUP来实现。...SQL语句 代码如下:select * into #TB f
您可能感兴趣的文章:分组后分组合计以及总计SQL语句(稍微整理了一下)MYSQL每隔10分钟进行分组统计的实现方法mysql使用GROUP BY分组实现取前N条记录的方法详解MySQL中的分组查询与连接查询语句sql server如何利用...
上面那一句SQL语句的意思就是:从表材料进货明细表中取出定额名称及规格的值 例2、查询材料进货明细表的详细记录 SELECT * FROM [材料进货明细表$] 等价于: SELECT 序号, 定额名称,规格,日期,单位,数量 FROM ...
游标.sql
我使用过的sql 例子,包括,数据库备份、数据库表空间 查询、添加远程服务器
NULL 博文链接:https://zhanghteye.iteye.com/blog/2373231
10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...
Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。 本文是Hive的开发...
hive是基于Hadoop的一...Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。
5. Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中 该对象包括SQL语句 输入参数映射信息 输出结果映射信息 其中输入参数和输出结果的映射类型包括HashMap集合对象 POJO对象类型
1. 根据数据库设计的基本思想,设计出...5. 用SQL语句实现数据库和表的建立,数据的输入;按照作者、出版社等信息统计;实现图书的借阅日期、借阅人等信息的修改;用SQL语句实现库存图书、借阅超期、个人借阅等查询。
本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下
经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice ...
1.概述 group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’...我们希望统计每一个用户订单的总金额,我们可以借助 group by 来实现: select Customer,sum(OrderPrice) as total_