`
xiaoer_1982
  • 浏览: 1864862 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

查询某个编号的批次范围

阅读更多

如何通过下面源表的数据查询得到目标表的数据?

源表:
批次 编号
1 1000
1 1001
2 1000
3 1001
4 1000
5 1000
目标表:
编号 起始批次 结束批次
1000 1 2
1001 1 1
1001 3 3
1000 4 5

/*---------------------------------
-- Author : htl258(Tony)
-- Date : 2009-09-11 18:24:47
-- Version: Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
Mar 29 2009 10:27:29
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

---------------------------------
*/
--> 生成测试数据表:源表

IF NOT OBJECT_ID('[源表]') IS NULL
DROP TABLE [源表]
GO
CREATE TABLE [源表]([批次] int,[编号] int)
INSERT [源表]
SELECT 1,1000 UNION ALL
SELECT 1,1001 UNION ALL
SELECT 2,1000 UNION ALL
SELECT 3,1001 UNION ALL
SELECT 4,1000 UNION ALL
SELECT 5,1000
GO
--SELECT * FROM [源表]

-->SQL2000查询如下:
SELECT a.编号,a.批次 起始批次,MIN(b.批次) 结束批次
FROM (
SELECT * FROM [源表] t
WHERE NOT EXISTS(
SELECT 1 FROM 源表
WHERE 编号=T.编号 AND T.批次=批次+1)
)
AS a
INNER JOIN (
SELECT * FROM [源表] t
WHERE NOT EXISTS(
SELECT 1 FROM 源表
WHERE 编号=T.编号 AND 批次=T.批次+1)
)
AS b
ON a.批次<=b.批次 AND a.编号=b.编号
GROUP BY a.批次,a.编号

-->SQL2005查询如下:

SELECT a.编号,a.批次 起始批次,b.批次 结束批次
FROM (
SELECT rn=ROW_NUMBER()OVER(ORDER BY 编号,批次),* FROM [源表] t
WHERE NOT EXISTS(
SELECT 1 FROM 源表
WHERE 编号=T.编号 AND T.批次=批次+1)
)
AS a
INNER JOIN (
SELECT rn=ROW_NUMBER()OVER(ORDER BY 编号,批次),* FROM [源表] t
WHERE NOT EXISTS(
SELECT 1 FROM 源表
WHERE 编号=T.编号 AND 批次=T.批次+1)
)
AS b
ON a.rn=b.rn

/*
编号 起始批次 结束批次
----------- ----------- -----------
1000 1 2
1000 4 5
1001 1 1
1001 3 3

(4 行受影响)
*/

分享到:
评论

相关推荐

    琼脂粉安全技术说明书.pdf

    在本段内容中,虽然没有直接提及具体的IT技术知识点,但是我们还是可以从文档内容的特征中提取出一些相关的信息,这些信息可以帮助我们理解文档所涉及的范围和内容。以下是从给定文件内容中提取出来的知识点: 1. ...

    直行程电动执行器说明书.pdf

    8. 执行器的制造编号和批次:文档中出现了“WK361LSA-08”等字样,这可能是执行器的序列号或者制造编号,用于识别特定的设备批次。 从文档内容分析,直行程电动执行器的设计和制造考虑了多种应用场合和控制需求。...

    matlab开发-axshift

    例如,用户可以通过`axshift`在不改变其他子批次大小的情况下,扩大或缩小某个特定子批次的面积,或者调整它们之间的间距。 使用`axshift`通常包括以下几个步骤: 1. **创建子批次**:首先,使用`subplot`函数创建...

    质量控制资料.pdf

    这个数值可能代表某个特定的测量值、编号、批次号或其他重要标识。 3. (m) (mm) 单位“m”表示米,是国际单位制中的基本长度单位。而“mm”是毫米,等于1米的千分之一。在质量控制中,长度的测量常常使用毫米作为...

    文件发放登记表.doc

    “分发号”是针对特定分发批次的编号,它不同于文件编号,主要用于跟踪每一次文件的发放。这有助于了解某个文件在不同时间点的分发情况,防止重复发放或者遗漏。 “版本”指的是文件的更新迭代状态。随着业务的发展...

    【工程文档】-焊接钢筋试验台帐3-2.doc

    2. **编号与页码**:每个试验台帐都有唯一的编号,便于管理和查找,同时页码表明这是一个多页的文档,可能包含多个试验批次的数据。 3. **施工单位与监理单位**:这两个角色在工程质量把控中至关重要。施工单位负责...

    ROTORK AQ执行器中文手册.pdf

    而在文档的最后部分出现的“13/11AQ6734Q”可能指具体的部件型号或批次编号。 由于文档内容混乱且被扫描技术限制,部分文字难以辨认,无法提供更具体的技术细节。在实际使用手册时,应该参照具体的型号和场景,结合...

    建筑工程常用表格20214.1.3机械量传感器安装记录.doc

    4. **检验批序号**:按照工程进度和检验计划分配的批次编号,用于跟踪和控制工程质量。 5. **测点名称**:传感器测量的具体位置或目标,可能对应建筑物的某个关键节点或构件。 6. **设计编号**:传感器在设计图纸上...

    SAP模块常用事务代码

    MI22事务代码用于查看具体某个盘点凭证的详细内容,包括物料编号、实际数量等信息。 **MI24 - 显示实际盘点凭证清单** MI24事务代码用于列出所有实际盘点凭证,便于用户查看和管理。 **MI03 - 显示实际盘点清单**...

    混凝土质量样板引路验收(验证)记录表.pdf

    而尺寸后的“4mm”、“5mm”、“6mm”可能指的是混凝土样板的厚度或者某个部位的允许误差范围。日期编码如“2014-0001218”、“2014-0001822”等可能是工程的具体批次或者检验的时间标记。 此外,“mm202036mm5mm7...

    Microsoft_Dynamics_AX开发笔记

    - **1.6.7 根据物料编号得到库存物理预留**: 物料编号可以用来查询该物料的所有物理预留,这对于确保库存可用性至关重要。 - **1.6.8 库存预留**: 库存预留是指为特定目的而预留的一部分库存,例如订单或生产计划。 ...

    食品安全溯源.pptx

    溯源标识可以根据生产商编号、批次、生产日期及流水号等组合编码。 溯源系统的技术支持包括图像输入设备或光电扫描设备自动识读的信息自动处理技术、射频技术与空间耦合传输特性、非接触的自动识别技术。溯源标识的...

    工艺流程参考.pdf

    5. 数量级参数:数字“31000-50000”可能指的是某个具体的测试结果、批次大小、生产量或其他数量级相关的参数,这个参数对于工艺流程的参考具有指导意义。 6. 工艺流程编号:文档中出现了多个带编号的流程,例如...

    SH出租车gps数据3.zip

    4. 时间序列分析:基于日期和批次编号的文件,可以进行时间序列分析,观察交通状况随时间的变化,比如节假日与工作日的区别、早晚高峰的影响等。 5. 出租车服务评估:通过分析每个出租车的运行数据,可以评估服务...

    箱包提包采购框架合同.pdf

    文档中的数字和符号可能代表了采购量、价格、比例等经济信息,例如“252000:253000”可能表示某种商品的销售数量范围,“55%”可能是指产品合格率或者折扣率,“10”可能代表某项条款编号或者某个采购批次的编号。...

    食品安全溯源系统方案.ppt

    溯源标识可以根据生产商编号、批次、生产日期及流水号等组合编码。 溯源标识的类型包括二维码和RFID。二维码优点是信息容量大、容错能力强、印制要求不高、可用多种阅读设备阅读。RFID的优点是可以忽略成本效益,...

    Informatica中Sequence Generator的两个有用的选项

    Reset 选项的使用场景是,例如对同一批次数据需要产生一个序列号,每批次均从初始值开始编号,这时可以使用 Reset 选项。另外,在每次加载目标表时,目标表需要清空数据,而目标表由一个 Sequence 作为主键的,此时...

    SITRANS FUS SONOKIT超声波流量计.pdf

    1. 文档序号:文档中提到的序号"FDK:521H0549SFIDK.PS.029.S2.02-A5E***085R9377"可能是该流量计特定批次的制造编号或者版本号,用于区分不同生产批次的产品以及便于追踪和管理。 2. 产品介绍:文档开头提到了...

Global site tag (gtag.js) - Google Analytics