0

すべての varchar データ型と 1 つの画像データ型の列を使用して、SQL Server でクロス集計/ピボット クエリを実行する必要があります。この形式で一連のテーブルを結合するストアド プロシージャを作成しました。「B」は画像データにリンクできる唯一の要素です。「B」の DATA フィールドが空白の場合、その行の IMAGEDATA も空白になります。

  OBJID    CONTAINERID    ELEMENT   DATA     IMAGEDATA   
  1        11             A         a123     NULL
  1        12             A         aa123    NULL
  1        11             B         b123     0XFFD8FFE       
  1        12             B         bb123    0XFFD8FFE       
  1        11             C         c123     NULL      

次に、ピボット クエリを使用します。理想的には、テーブルは次のようになります。

  OBJID    CONTAINERID    A       B       C      IMAGEDATA   
  1        11             a123    b123    c123   0XFFD8FFE       
  1        12             aa123   bb123          0XFFD8FFE        

問題は、画像データ フィールドをピボット、グループ化、変換などできないことです...画像をバイナリから varchar に変換しようとしましたが、意味不明になります。

制限:

    1.「ELEMENTS」は動的であるため、ピボット テーブルの列数は常に変化しています。(つまり、A から Z までずっと*可能性*があります。)
    2. フィールドは SSRS レポートで使用されるため、画像データ型を維持する必要があります。
    3. 他の開発言語 (.NET など) を使用できない

これを行う他の方法はありますか?

4

1 に答える 1

0

したがって、最後のステップとしてIMAGEDATA列を手動で追加/作成する以外に、これを行う方法はないようです。これが私の解決策でした:

2つの別々のテーブルを使用しました。1つはIMAGEDATA列のないピボットテーブルで、もう1つは上記の質問に表示された最初のテーブルと同様のテーブルです。ピボットテーブルのクエリを作成したら、それを一時テーブルに配置し、IMAGEデータ型の列を追加し、一致させてIMAGEDATA列に入力しました。

単純な解決策のように見えますが、保守も効率もほとんどありません。IMAGEDATAを他のフィールドと一致させることにあまり依存していません。さらに多くの要素にIMAGEDATAがあると判断した場合はどうなりますか?

于 2011-06-09T13:38:50.913 に答える