首页 > 数据库技术 > 详细

PCB MS SQL 排序应用---相邻数据且相同合并处理

时间:2018-07-06 00:35:50      阅读:230      评论:0      收藏:0      [点我收藏+]

这是一个很有趣SQL数据处理应用,具体需求如下

ERP需要工程将物料编码相邻的编码合并求和BOM用量,巧妙的用到了已有排序号分组排序号之间的差值求解

示例:

原数据:

技术分享图片

要求转换:

技术分享图片

实际转换后数据:

技术分享图片

 

SQL代码实现:

with tab1 as
(
select 1 as [Rank] ,1710 as OPERATION_CODE,3.621000 UNIT_TIME
UNION  
select 2 as [Rank] ,1710 as OPERATION_CODE,3.621000 UNIT_TIME
UNION 
select 3  as [Rank] ,1711 as OPERATION_CODE,3.333000 UNIT_TIME
UNION 
select 4 as [Rank] ,1710 as OPERATION_CODE,0.288000 UNIT_TIME
UNION 
select 5 as [Rank] ,1711 as OPERATION_CODE,0.288000 UNIT_TIME
UNION 
select 6 as [Rank] ,1711 as OPERATION_CODE,3.333000 UNIT_TIME
)
SELECT * into #tab1 FROM tab1

SELECT * FROM #tab1

SELECT MAX([Rank]) [Rank],OPERATION_CODE,SUM(UNIT_TIME) UNIT_TIME
FROM 
  (SELECT OPERATION_CODE,[Rank],UNIT_TIME,row_number()over(partition by OPERATION_CODE order by [Rank]) -[Rank] DiffVal 
  FROM #tab1) a
GROUP BY OPERATION_CODE,DiffVal
ORDER BY MAX([Rank])

 

PCB MS SQL 排序应用---相邻数据且相同合并处理

原文:https://www.cnblogs.com/pcbren/p/9270827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!