0

タイムテーブルの列に日付と時刻を別々に含むテーブルがDBにあるため、フロントエンドで単一のものとして表示するために、日付と時刻の列に参加し、一時テーブルに挿入してピボットを解除しましたが、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_bidたり、 1,1Rownumber() Partition by No_of_Batches Order by No_of_Batchesを与えたりすると、同じです。

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 に答える