0

我的问题:我的存储过程有动态列。所以我不能插入表中。所以我需要直接导出到excel。下面是我的代码。下面的代码工作正常。我需要直接从存储过程导出 excel,或者如何使用存储过程创建动态表请帮助我。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_PIVOT_Seats]
AS
BEGIN
SET NOCOUNT ON;
DECLARE 
@cols NVARCHAR(MAX),
@stmt NVARCHAR(MAX)
SELECT @cols = ISNULL(@cols + ', ', '') + '[' + T.showdateformat + ']' FROM 
(SELECT  DISTINCT showdateformat FROM vw_Pivot_Seat_ALL) AS T

SELECT @stmt = ' SELECT * FROM vw_Pivot_Seat_ALL AS T
    pivot (SUM(T.Qty)  FOR T.showdateformat IN (' + @cols + ')) AS P'
END
EXEC sp_executesql @STMT=@STMT

请帮助我

少女

4

1 回答 1

0

在 Excel 2010+ 中,转到数据选项卡,添加到 SQL 数据库的连接,当您进入“选择表”对话框时,只需选择任何有效的表(我们可以稍后更改)。然后下一个对话框将被称为“导入表”。从这里按照此页面上的说明进行操作,即。单击属性,然后单击“定义”选项卡。将命令类型更改为“表格”以外的内容,将命令文本更改为 EXEC usp_PIVOT_Seats,您应该一切顺利。

于 2013-05-09T20:29:11.043 回答