使用PIVOT从SQL Server 2005查询创建记录集时遇到问题

时间:2009-12-11 15:14:09

标签: sql-server-2005 excel-vba pivot adodb recordset

这是我存储过程中的输出代码:

SELECT  *
FROM 
(
    select q.ccypair, q.vega, t.label 
    from #parallel q 
    LEFT JOIN TPRR_vega_weights t ON q.Tenor = t.Tenor
) a
PIVOT 
(
    Sum(Vega)  
    for a.label in ([t1],[t2],[t3],[t4],[t5],[t6],[t7],[t8],[t9],[t10],[t11],[t12],[t13],[t14],[t15],[t16],[t17],[t18])
)p
order by ccypair

在SQL Server Management Studio中正常工作,但是当我尝试在Excel VBA中打开它时,我得到一个关闭 ADODB.Recordset(我使用vanilla select *从x查询测试了相同的代码很好)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

最后,它不是导致问题的枢轴,它只是在存储过程中没有设置NOCOUNT ON

答案 1 :(得分:0)

我的想法是ADO并不知道如何正确处理pivot语句。如果您在使用DAO的地方,我会说使用直通查询,不需要或ADO中的选项。

您是否可以将sql语句放在存储过程中并调用存储过程?这样ado只能处理返回的数据。