動的ピボット SQL クエリを実行して、次のような結果を取得します。
そのための私のクエリを以下に示します。
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(AssortmentSize)
from tbl_Assortment_Qty WHERE Head_Id=325
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query='SELECT Description,AssortmentType, '+@cols+',ISNULL (size_unit_price,0) UnitPrice from
(
SELECT DISTINCT H.Description,AssortmentType,AssortmentSize,AssortmentQty,B.size_unit_price FROM dbo.tbl_Assortment_Qty Q
INNER JOIN
dbo.tbl_Fabric_Order_Head H
ON H.Head_ID=Q.Head_ID
LEFT OUTER JOIN
dbo.Budget_Accessories_Qty B
ON B.head_Id=Q.Head_Id
AND B.accessories=Q.AssortmentType
WHERE Q.head_id=325
) x
pivot
(
SUM(AssortmentQty)
for AssortmentSize in (' + @cols + ')
) p '
execute(@query)
ここで、結果のデータテーブルを Crystal レポートに直接出力したいと考えています。ヘッダー名はそのままで、そのまま欲しいです。今、私はこれで完全に立ち往生しています。Crystal レポートで固定された列は動的であるため、定義できません。サイズ c(L、M、S、XL) は他のものである可能性があり、私はクリスタル レポートの専門家ではありません。私が必要とする最も簡単な答えは、列フィールドを定義せずにDATATABLEをCrystalレポートに直接印刷する方法ですか??