无法在SQL代码中为MS查询输入参数

时间:2019-04-16 13:23:45

标签: sql-server excel parameter-passing ms-query

我正在创建一个Excel报表,我旁边的其他用户可以管理。

目前,我正在努力在MS Query中创建参数,以便它们可以从Excel中的单元格获取输入。

每次我尝试粘贴我的代码时,如果我用“问号”更改了原始日期,就会出现以下错误。

“在无法正常显示的查询中不允许使用参数。”

我试图为非常简单的查询创建参数。喜欢

select *
From dmbase.test
where ID = ?

在这里工作的参数,我什至可以添加10个或更多,它仍然可以工作。

此外,我尝试粘贴代码,就像在SSMS中一样,然后再通过Data-Properties-> Query Properties-> Definitions更改代码并将参数添加到“ Command Text”框中,但是Excel仅给出了错误。

也尝试为我的参数声明变量,但效果不佳。出现有关符号的错误。

declare Parameter1 date(10)
set Parameter1 = ?
declare Parameter2 date(10)
set Parameter2 = ?

我不是100%肯定应该归罪于联接,但这就是我的感觉。

我的代码如下所示。

select
loc.LocationLang
,loc.DistrictLang
,loc.InventoryRegionLang
,cod.ContractNumber
,cus.CustomerLang
,cus.InternalCustomerType
,cus.CustomerGroupCode
,cus.Organizationalcode
,css.CustomerSubSegmentLang
,loc.AnalysisRegionLang
,dht.ContractHeaderTypeLang
,cod.RentalOutDate
from
dmbase.fContractOpenDetail as cod
left join dmbase.dLocation as loc
    on cod.LocationID = loc.LocationID
left join dmbase.dCustomer as cus
    on cod.CustomerID = cus.CustomerID
left join dmbase.dCustomerSubSegment as css
    on cus.CustomerSubsegmentID = css.CustomerSubSegmentID
left join dmbase.dContractHeaderType as dht
    on cod.ContractHeaderTypeAMID = dht.ContractHeaderTypeAMID
where
cod.CompanyID = '6'
and cod.RentalOutDate between ? and ?
and left(loc.LocationLang,4) = '7201'

order by cod.ContractNumber

如果您能说出如何放入参数,这样我就不会出现“不允许使用参数...”的错误,我将不胜感激。

0 个答案:

没有答案