Excel Query - invalid number of parameter and invalid descriptor index errors -


i work in financial deparment of company , want extract data our server (sql) put reports board.

so have several excel file use excel query retreive data , make presentations.

i have been upgrading querys , hit obstacle one.

it working fine bit of code: select

  internal_reference ref,   cmp_code cmp_code,   counterparty_code bank_code,   transaction_code trans_code,   cast(convert(varchar(10), amo_end_date, 110) datetime) date,   sum([amortization]) amount   [sage_mtc_frp].[dbo].[loan_schedule] inner join [sage_mtc_frp].[dbo].    [loans]   on [sage_mtc_frp].[dbo].[loan_schedule].loan_id=[sage_mtc_frp].[dbo].    [loans].loan_id   (amo_end_date>=?) , (book_date<?) ,   (transaction_code<>'cpca' , transaction_code<>'cpcf' ,  transaction_code<>'rent') ,    is_deleted=0 , version_number=1 , cmp_code='mtg' group    internal_reference, cmp_code, counterparty_code, transaction_code,     amo_end_date 

but when put code union all, blows these 2x errors:

problem: invalid number of parameter

invalid descriptor index

code:

select *   ( select     internal_reference ref,   cmp_code cmp_code,   counterparty_code bank_code,   transaction_code trans_code,   cast(convert(varchar(10), amo_end_date, 110) datetime) date,   sum([amortization]) amount   [sage_mtc_frp].[dbo].[loan_schedule] inner join [sage_mtc_frp].[dbo].    [loans]   on [sage_mtc_frp].[dbo].[loan_schedule].loan_id=[sage_mtc_frp].[dbo].    [loans].loan_id   (amo_end_date>=?) , (book_date<?) ,   (transaction_code<>'cpca' , transaction_code<>'cpcf' ,  transaction_code<>'rent') ,    is_deleted=0 , version_number=1 , cmp_code='mtg' group    internal_reference, cmp_code, counterparty_code, transaction_code,     amo_end_date  union  select     cl_code ref     ,left([acc_code] , 3) cmp_code     ,[counterparty_code] bank_code     ,right([cl_description] , 3) trans_code     ,cast(convert(varchar(10), [end_date], 110) datetime) date     ,[cl_amount] amount  [sage_mtc_frp].[dbo].[credit_lines]  (end_date>?) , right([cl_description] , 3)='ppc' ) data order ref 

if both queries run there self, use like:

 declare @result table(  [ref] nvarchar(50),  [cmp_code] nvarchar(50),  [bank_code] nvarchar(50),  [trans_code] nvarchar(50),  [date] date,  [amount] decimal(10,2) ) insert @result         ( ref ,           cmp_code ,           bank_code ,           trans_code ,           date ,           amount         ) select        internal_reference ref,       cmp_code cmp_code,       counterparty_code bank_code,       transaction_code trans_code,       cast(convert(varchar(10), amo_end_date, 110) datetime) date,       sum([amortization]) amount   [sage_mtc_frp].[dbo].[loan_schedule] inner join [sage_mtc_frp].[dbo].    [loans]   on [sage_mtc_frp].[dbo].[loan_schedule].loan_id=[sage_mtc_frp].[dbo].    [loans].loan_id   (amo_end_date>=?) , (book_date<?) ,   (transaction_code<>'cpca' , transaction_code<>'cpcf' ,  transaction_code<>'rent') ,    is_deleted=0 , version_number=1 , cmp_code='mtg' group    internal_reference, cmp_code, counterparty_code, transaction_code,     amo_end_date   insert @result         ( ref ,           cmp_code ,           bank_code ,           trans_code ,           date ,           amount         ) select     cl_code ref     ,left([acc_code] , 3) cmp_code     ,[counterparty_code] bank_code     ,right([cl_description] , 3) trans_code     ,cast(convert(varchar(10), [end_date], 110) datetime) date     ,[cl_amount] amount  [sage_mtc_frp].[dbo].[credit_lines]  (end_date>?) , right([cl_description] , 3)='ppc'   select * @result order ref 

Comments