#sql-server #excel #parameter-passing #ms-query
#sql-сервер #преуспеть #передача параметров #ms-запрос
Вопрос:
Я создаю отчет Excel, которым могли бы управлять другие пользователи, кроме меня.
На данный момент я пытаюсь создать параметры в MS Query, чтобы они получали входные данные из ячейки в Excel.
Каждый раз, когда я пытаюсь вставить свой код, где я изменил исходные даты на «вопросительные знаки», я получаю следующую ошибку.
«Параметры не разрешены в запросах, которые не могут отображаться графически».
Я попытался создать параметры для очень простых запросов. Нравится
select *
From dmbase.test
where ID = ?
И там параметры работают, я мог бы добавить даже 10 или больше, и это все равно будет работать.
Кроме того, я попытался вставить код так, как он есть в SSMS, а затем позже через Data-Properties-> Свойства запроса -> Определения, чтобы изменить код и добавить параметры в поле «Текст команды», но 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
Я был бы признателен, если бы вы могли сказать, как я мог бы ввести параметры, чтобы я не получал ошибку «Параметры не разрешены …».
Комментарии:
1. Вам нужно показать нам код, в который вы добавляете параметры. Кроме того, ваше предложение where логически превратило ваше левое соединение в dmbase. dLocation во внутреннее соединение. Вы должны либо сделать это внутренним соединением, либо переместить предикат в соединение вместо предложения where.
2. Привет, Шон, это код, в который я хочу добавить параметры. Я хотел бы иметь параметры для cod. RentalOutDate. Я хочу, чтобы пользователь мог вводить в Excel даты, которые он хочет видеть.