当前位置: 代码迷 >> Sql Server >> 这个查询怎样写?解决办法
  详细解决方案

这个查询怎样写?解决办法

热度:72   发布时间:2016-04-24 09:47:23.0
这个查询怎样写?
/*

已知表T_Sn记录如下

fdBoxSn            fdSn
BZ201400000001 YW1A0000000001
BZ201400000001 YW1A0000000002
BZ201400000001 YW1A0000000003
BZ201400000001 YW1A0000000004
BZ201400000002 YW1A0000000005
BZ201400000002 YW1A0000000006
BZ201400000002 YW1A0000000007
BZ201400000002 YW1A0000000008
BZ201400000003 YW1A0000000009
BZ201400000003 YW1A0000000010


如何写一查询,显示如下结果

fdBoxSn              fdSn
BZ201400000001       YW1A0000000001-YW1A0000000004  
BZ201400000002       YW1A0000000005-YW1A0000000008
BZ201400000003       YW1A0000000009-YW1A0000000010


*/


----------建立测试环境(MSSQL2000)
if  exists (select * from sysobjects where id = object_id(N'T_Sn') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
 begin
    drop table T_Sn
 end
go


CREATE TABLE [T_Sn] (
[fdBoxSn] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fdSn] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000001','YW1A0000000001'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000001','YW1A0000000002'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000001','YW1A0000000003'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000001','YW1A0000000004'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000002','YW1A0000000005'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000002','YW1A0000000006'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000002','YW1A0000000007'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000002','YW1A0000000008'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000003','YW1A0000000009'
insert T_Sn(fdBoxSn,fdSn) select 'BZ201400000003','YW1A0000000010'
GO
select * from T_Sn

------解决思路----------------------

select fdBoxSn,min(fdsn)+'~'+max(fdsn) as fdsn
from T_Sn
group by fdBoxSn
  相关解决方案