0

我做了一个动态的 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)

现在我想将结果数据表直接打印到水晶报表中。我想要它原样,标题名称完好无损。现在我完全陷入了困境。我无法定义水晶报表中固定的列,因为它们是动态的。尺码 c(L,M,S,XL) 可能是其他尺码,我不是水晶报告专家。我需要的最简单的答案是,如何将 DATATABLE 直接打印到 Crystal 报表中,而不定义其列字段?

4

2 回答 2

0

经过猛烈的搜索后,我终于决定,在我身边,使用水晶报告是不可能的。所以我宁愿通过简化查询来使用交叉表,即不使用 PIVOT。现在我的结果集看起来像, 在此处输入图像描述

于 2013-07-21T02:42:40.320 回答
0

据我所知,如果不首先为您的值指定某种占位符,就无法直接将 DataTable 打印到报告中。作为解决方案,您可以使用本文http://www.codeproject.com/Articles/20670/Dynamic-Crystal-Report-with-C中使用的技术。

于 2013-07-20T21:11:42.410 回答