sql材料分级统计及汇总案例参考
--第一步:根据系统编号、列、单价分组求和
select CLBH,DJ,sum(SL) as SL,sum(JE) as JE,Lie
into #TempSZCMX
from #ShouZhiCunMingXi group by Lie, CLBH , DJ order by Lie,CLBH
--第二步:列转行,分组求和
insert into #TempLastResults
SELECT YJ,EJ,
MoJi=(CASE WHEN grouping(YJ) = 1 THEN '0'
WHEN grouping(EJ) = 1 THEN [YJ]
when grouping(MoJi)=1 then [EJ] else MoJi END),
DJ,
sum(SYSL) SYSL,SUM(SYJE) SYJE,SUM(BYSL) BYSL,SUM(BYJE) BYJE,
SUM(CKSL) CKSL,SUM(CKJE) CKJE,SUM(RKSL) RKSL,SUM(RKJE) RKJE
--into #TempLastResults
from
(
select CaiLiaoXinxi_1.SJ AS YJ,CaiLiaoXinxi_1.BH AS EJ,CaiLiaoXinxi.BH AS MoJi,DJ,
sum(case Lie when '上月' then SL else 0 end) as 'SYSL',
sum(case Lie when '上月' then JE else 0 end) as 'SYJE',
sum(case Lie when '本月' then SL else 0 end) as 'BYSL',
sum(case Lie when '本月' then JE else 0 end) as 'BYJE',
sum(case Lie when '出库' then SL else 0 end) as 'CKSL',
sum(case Lie when '出库' then JE else 0 end) as 'CKJE',
sum(case Lie when '入库' then SL else 0 end) as 'RKSL',
sum(case Lie when '入库' then JE else 0 end) as 'RKJE'
from #TempSZCMX inner join CaiLiaoXinxi ON #TempSZCMX.CLBH =CaiLiaoXinxi.XTBH
INNER JOIN CaiLiaoXinxi CaiLiaoXinxi_1 ON CaiLiaoXinxi.SJ=CaiLiaoXinxi_1.BH
GROUP BY CaiLiaoXinxi.BH ,CaiLiaoXinxi_1.BH,CaiLiaoXinxi_1.SJ,DJ
) as MingXi
group by YJ,EJ,MoJi,DJ with rollup having grouping(MoJi) =1 union all
select CaiLiaoXinxi_1.SJ AS YJ,CaiLiaoXinxi_1.BH AS EJ,CaiLiaoXinxi.BH AS MoJi,DJ,
sum(case Lie when '上月' then SL else 0 end) as 'SYSL',
sum(case Lie when '上月' then JE else 0 end) as 'SYJE',
sum(case Lie when '本月' then SL else 0 end) as 'BYSL',
sum(case Lie when '本月' then JE else 0 end) as 'BYJE',
sum(case Lie when '出库' then SL else 0 end) as 'CKSL',
sum(case Lie when '出库' then JE else 0 end) as 'CKJE',
sum(case Lie when '入库' then SL else 0 end) as 'RKSL',
sum(case Lie when '入库' then JE else 0 end) as 'RKJE'
--into #TempLastResults
from #TempSZCMX inner join CaiLiaoXinxi ON #TempSZCMX.CLBH =CaiLiaoXinxi.XTBH
INNER JOIN CaiLiaoXinxi CaiLiaoXinxi_1 ON CaiLiaoXinxi.SJ=CaiLiaoXinxi_1.BH
GROUP BY CaiLiaoXinxi.BH ,CaiLiaoXinxi_1.BH,CaiLiaoXinxi_1.SJ,DJ
--第三步:求最终结果
select MC,GG,DW,DJ,SYSL,SYJE,RKSL,RKJE,CKSL,CKJE,BYSL,BYJE
from #TempLastResults inner join
(
SELECT '0' AS BH,'全部材料总计' AS MC,'' AS GG,'' AS DW
UNION ALL
SELECT BH,(MC+' 合计') AS MC,GG,DW FROM CaiLiaoXinxi WHERE SJ='0' and MJ=0
UNION ALL SELECT BH,(MC+' 小计') AS MC,GG,DW FROM CaiLiaoXinxi WHERE SJ<>'0' AND MJ=0
UNION ALL SELECT BH, MC,GG,DW FROM CaiLiaoXinxi WHERE MJ=1
) AS B on B.BH=#TempLastResults.MoJi and B.BH like @LeiBie order by B.BH
sql材料分级统计及汇总案例参考的更多相关文章
- sql简单实用的统计汇总案例参考
USE [PM]GO/****** 对象: StoredProcedure [dbo].[LfangSatstics] 脚本日期: 08/24/2013 10:57:48 ******/SET ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- sql 按年月日统计
1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...
- 《高性能SQL调优精要与案例解析》一书谈SQL调优(SQL TUNING或SQL优化)学习
<高性能SQL调优精要与案例解析>一书上市发售以来,很多热心读者就该书内容及一些具体问题提出了疑问,因读者众多外加本人日常工作的繁忙 ,在这里就SQL调优学习进行讨论并对热点问题统一作答. ...
- SQL Server 后续去除功能汇总
原文:SQL Server 后续去除功能汇总 功能更新去除汇总 字段类型 在 Microsoft SQL Server 的未来版本中将删除 ntext.text 和 image 数据类型. 请避免在新 ...
- 《高性能SQL调优精要与案例解析》——10.4_SQL语句改写部分文档
应各位读者要求,现将<高性能SQL调优精要与案例解析>中<10.4 SQL语句改写>部分整理成电子文档,上传至群共享文件(群号:298176197): 或者通过如下链接下载: ...
- 《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(SQL TUNING或SQL优化)核心机制之——索引(index)
继<高性能SQL调优精要与案例解析>一书谈SQL调优(SQL TUNING或SQL优化),我们今天就谈谈各主流关系库中,占据SQL调优技术和工作半壁江山的.最重要的核心机制之一——索引(i ...
- sql之分段统计
sql之分段统计 需求:获取一个县所有家庭人数在1-2人,3-4人,5-6人,6人以上的家庭数的数组 思路:通过CASE WHEN 将 CBFCYSL分组,然后统计数据条数. 语句: SELECT T ...
- SQL Server一个特殊的阻塞案例分析2
最近发现一个非常奇怪的阻塞问题,如下截图所示(来自监控工具DPA),会话583被会话1036阻塞,而且阻塞发生在tempdb,被阻塞的SQL如下截图所示,会话等待类型为LCK_M_S 因为DPA工具不 ...
随机推荐
- (大数据工程师学习路径)第三步 Git Community Book----基本用法(下)
一.比较提交 - Git Diff 1.比较提交 - Git Diff 你可以用 git diff 来比较项目中任意两个版本的差异. $ git diff master..test 上面这条命令只显示 ...
- SQLserver创建与主外键的看法
一个.背景 最初研究的相关内容数据库.仅仅是正式.从来没有练过,只能慢慢漂流,现在做的客房时,,非常多的知识需要使用视图,慢的实践. 视图:我理解的就是一张表.它把我们所须要的某个表或某几个表中的部分 ...
- react学习笔记1--基础知识
什么是react A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES[React是一个用于构建用户界面的JavaScript库.] React之所以快, ...
- C# 一个WCF简单实例
以订票为例简单应用wcf 新建一个wcf服务应用程序 在IService1.cs定义服务契约 复制代码 代码如下: namespace WcfDemo { // 注意: 如果更改此处的接口名称 &qu ...
- BZOJ 1025 SCOI2009 游戏 动态规划
标题效果:特定n.行定义一个替代品1~n这种更换周期发生后,T次要(T>0)返回到原来的顺序 找到行的所有可能的数 循环置换分解成若干个,然后行位移数是这些周期的长度的最小公倍数 因此,对于一些 ...
- INF 右安装驱动程序和卸载
INF 右键安装驱动以及卸载 之前写过一篇文章是关于INF文件具体解释的.大家能够參看INF文件具体解释,这次写的是关于INF右键安装,这样比較方便. 卸载的话也是一句话.能够大大降低安装时间: 先将 ...
- Fckeditor用法
试Fckeditor版本号:2.6.3 眼下Fckeditor仅仅能用于基于ie内核的浏览器,假设要使用于chrome等浏览器,请使用ckeditor. 详细用法: 1.将解压后的fckeditor整 ...
- Web API 2:Action的返回类型
Web API 2:Action的返回类型 Web API控制器中的Action方法有如下几种返回类型: void HttpResponseMessage IHttpActionResult 其它类型 ...
- Ubuntu 14.04 编译newLISP 10.6.0
1. 确保安装了gcc4.8.2 2. 安装须要的库: apt-get install libreadline6 libreadline6-dev 3. 下载并解压newLISP源码,这个不多说了,去 ...
- Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换
Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换 1. 可能你的Alt+Tab键被别人禁用了,试下以下的方法: 1 2. 为什么要禁用Alt+Tab 1 3. ALT+TAB ...