0

ストアド プロシージャからの出力コードは次のとおりです。

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が閉じられます (バニラ select * from x クエリで同じコードをテストしましたが、問題ありませんでした)。

何か案は?

4

2 に答える 2

1

結局、問題の原因はピボットではなく、ストアド プロシージャで SET NOCOUNT ON に失敗しただけでした。

于 2009-12-14T16:25:24.387 に答える
0

私の考えでは、ADO にはピボット ステートメントを正しく処理する方法がありません。DAO を使用している場合は、不要なパススルー クエリまたは ADO のオプションを使用すると言えます。

SQL ステートメントをストアド プロシージャに入れ、ストアド プロシージャを呼び出すことはできますか? この方法では、ado は返されたデータのみを処理します。

于 2009-12-11T15:35:53.033 に答える