0

我在我的数据库中有一个表,它在时间表的列中分别包含日期和时间,因此为了在前端将其显示为单个表,我加入了日期和时间列并插入到临时表中并取消了它,但是 Pk_id对于两个未透视的列都是相同的,所以在下拉框中的前端,当我在索引中选择项目时说在 DDL 中的 6 在回发发生后它将返回到 DDL 中的索引 1。所以,有没有办法输入未透视列的序列号,我的未透视查询是,

  Select * from  
(  
  Select pk_bid,No_of_batches,Batch1,Batch2,Batch3,Batch4, from #tempbatch   
) as p  
  Unpivot(Batchname for [Batches] in([Batch1],[Batch2],[Batch3],[Batch4])) as UnPvt  

在上面的查询中pk_bid&No_of_Batches是相同的,所以如果我输入Rownumber() Partition by pk_bid Order by pk_bidRownumber() Partition by No_of_Batches Order by No_of_Batches它只给出1,1,因为它是相同的。

4

1 回答 1

0

我已经像这样解决了我的上述问题,

我创建了另一个临时表并创建了序列号,该表中的列具有不同的值,我所做的查询是,

    Create Table #Tempbatch2
   (
     pk_bid int,  
     No_of_batches int,  
     Batchname Varchar(max),  
     [Batches] Varchar(max)  
   )

    Insert Into #Tempbatch2 
    Select * from  
    (  
      Select pk_batchid,No_of_batches,Batch1,Batch2,Batch3,Batch4 from #tempbatch   
    ) as p  
   Unpivot(Batchname for [Batches] in([Batch1],[Batch2],[Batch3],[Batch4])) as UnPvt

  Select Row_number() OVER(ORDER BY (Batchaname)) as     S_No,pk_bid,No_of_batches,Batchname,[Batches] from #Tempbatch2 
于 2013-10-07T05:46:31.413 回答