1
テーブル上でピボットを実行しようとして問題が発生しました。私が欲しいもののサンプルは以下の通りです。集計のないSQL Server 2008ピボット
ProductBarcode ProductID
-------------- ---------
1000 P1
1001 P1
1002 P2
1003 P3
1004 P4
1005 P4
ここで、上記の表を次のように変換します。
ProductID Barcode1 Barcode2
--------- -------- --------
P1 1000 1001
P2 1002
P3 1003
P4 1004 1005
私は次のクエリでそれをうまくしようとしていたが、それは必要な結果を与えていませんでした。
SELECT
[r1].[productID],
[r1].[Productbarcode] as Barcode1,
[r2].[ProductBarcode] as Barcode2
FROM products as r1 right JOIN products as r2 on r1.[productID] = r2.[productID]
は今、これは単なる一例であり、実際の場合には、何百ものがあります複数のバーコードを持つ製品
私は次のクエリを使用しようとしましたが、私が得たのは、両方のバーコード列でnullでした。
SELECT productID,[barcode1],[barcode2]
FROM
(SELECT barcode, productID
FROM products) as TableToBePivoted
PIVOT
(MAX(barcode)
FOR barcode IN ([barcode1], [barcode2])
) AS PivotedTable;
ご協力いただければ幸いです。
感謝をここに
しかし、あなたが欲しい、あなたが望む結果を得るしかし、多くの列(バーコード)を入力する方法です。私はあなたが書いたクエリを試して、私はBarcode1の列の下にバーコードを取得しますが、Barcode2の列の下に、それはすべてNULLを表示します。 –
@ミスバ - サンプルデータを使用しています。ピボット演算子を使用した行以外のすべてを照会すると、結果が得られますか? –
@Misbah Yanus - サンプルデータを作成するために使用されたすべてのSQLと予期される結果を生成するクエリを投稿しました。 –