当前位置: 代码迷 >> Sql Server >> 怎么筛选固定字段重复的数据
  详细解决方案

怎么筛选固定字段重复的数据

热度:48   发布时间:2016-04-24 10:25:42.0
怎样筛选固定字段重复的数据?
流水号   订单号    订单行号    订单数量  生产线  工时
001              A01                 1                      50           A             50
002              A01                 2                      60           A             30
003              A01                 1                      50           B             50

希望得到的结果:显示订单号和订单行号重复的数据
流水号   订单号     订单行号    订单数量  生产线  工时
001             A01                  1                       50            A             50
003             A01                  1                       50            B             50
------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-07-03 16:55:00
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
-- May 14 2014 18:34:29 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
go 
create table [TB]([流水号] varchar(3),[订单号] varchar(3),[订单行号] int,[订单数量] int,[生产线] varchar(1),[工时] int)
insert [TB]
select '001','A01',1,50,'A',50 union all
select '002','A01',2,60,'A',30 union all
select '003','A01',1,50,'B',50
--------------开始查询--------------------------
--方法1
SELECT  *
FROM    tb a
WHERE   EXISTS ( SELECT 1
                 FROM   ( SELECT    订单号 ,
                                    订单行号
                          FROM      tb
                          GROUP BY  订单号 ,
                                    订单行号
                          HAVING    COUNT(1) > 1
                        ) b
                 WHERE  a.订单号 = b.订单号
                        AND a.订单行号 = b.订单行号 )

--方法2
SELECT  [流水号] ,
        [订单号] ,
        [订单行号] ,
        [订单数量] ,
  相关解决方案