当前位置: 代码迷 >> Sql Server >> MSSQL一个行变列实例,先谢了
  详细解决方案

MSSQL一个行变列实例,先谢了

热度:131   发布时间:2016-04-24 08:50:56.0
【求助】MSSQL一个行变列实例,先谢了
已知表结构如下,此表作用是讲一个物品上的两个条码Link 每组两个条码 共两组四个,希望查询结果
将每组的两个 要显示为一行 每组条码通过LinkBarCode 连接,BarCodeType区分不同类型条码
例如:
需要使用C#开发求SQL 语句 ?

ID,L_BarCode,P_BarCode,LinkeTime         ,        LinkComplete
1 ,        111      ,        222      ,2015-08-24 20:41:16,    完成

/*-------------下面是表-------------------------------------------*/
CREATE TABLE [dbo].[ b_TestLink ](
[ID] [int] IDENTITY(1,1) NOT NULL,
[LinkBarCode] [varchar](50) NULL,
[BarCode] [nvarchar](50) NULL,
[LinkeTime] [datetime] default Getdate(),
[BarCodeType] [nvarchar](50) NULL,
[LinkComplete] [varchar](2) NULL  

 Select  [ID]   ,[LinkBarCode]   ,[BarCode]   ,[LinkeTime]   ,[BarCodeType]    ,[LinkComplete]    From b_TestLink 

Insert into b_TestLink (LinkBarCode,BarCode,LinkeTime,BarCodeType,LinkComplete) values ('111','111',getdate(),'L','1')
Insert into b_TestLink (LinkBarCode,BarCode,LinkeTime,BarCodeType,LinkComplete) values ('111','222',getdate(),'P','1')

Insert into b_TestLink (LinkBarCode,BarCode,LinkeTime,BarCodeType,LinkComplete) values ('333','333',getdate(),'L','1')
Insert into b_TestLink (LinkBarCode,BarCode,LinkeTime,BarCodeType,LinkComplete) values ('333','444',getdate(),'P','1')



------解决思路----------------------
期望结果的格式贴出来啊!
------解决思路----------------------
行转列做过几次,可看了几次都不知道楼主想实现成怎么样!
------解决思路----------------------
SELECT L.ID,
    -- L.LinkBarCode,
       L.BarCode AS L_BarCode,
       P.BarCode AS P_BarCode,
       L.LinkeTime,
       L.LinkComplete
  FROM b_TestLink L
  JOIN b_TestLink P
    ON L.LinkBarCode = P.LinkBarCode
 WHERE L.BarCodeType = 'L'
   AND P.BarCodeType = 'P'

         ID L_BarCode  P_BarCode  LinkeTime               LinkComplete
----------- ---------- ---------- ----------------------- ------------
          1 111        222        2015-08-25 16:48:04.460 1
          3 333        444        2015-08-25 16:48:04.460 1

------解决思路----------------------
没看明白,请数据举例。
  相关解决方案