我做一个动态的pivot 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报表中。我希望它原样,标题名称完好无损。现在我完全陷入了困境。我不能定义在水晶报表中修复的列,因为它们是动态的。尺寸c(L,M,S,XL)可能是另一个,我不是水晶报告专家。我需要的最简单的答案是,如何将DATATABLE直接打印到Crystal报表中,而不定义其列字段?
答案 0 :(得分:0)
据我所知,没有首先为您的值指定某种占位符,就无法直接将DataTable打印到报表中。作为解决方案,您可以使用本文中使用的技术http://www.codeproject.com/Articles/20670/Dynamic-Crystal-Report-with-C。
答案 1 :(得分:0)
经过猛烈的搜索,我终于决定在我身边使用水晶报告我想要的东西是不可能的。所以我宁愿使用交叉表来简化查询,即不使用PIVOT。现在我的结果集看起来像,