Текстовый параметр SSRS привязан к переменной SQL - PullRequest
0 голосов
/ 09 июля 2019

В настоящее время у меня есть отчет с двумя параметрами. Оба эти параметра имеют тип данных «текст». У меня проблема с передачей нужного значения этим параметрам из SQL, потому что переменные, которые представляют эти параметры в SQL, не могут быть текстовыми из-за того, что переменные теперь не могут быть «текстовыми» типами данных в SQL. Переменные прямо сейчас являются типами данных "datetime". Я пытался использовать какой-то другой текст, такой как тип данных в SQL, такой как nvarchar, nchar, char, varchar и т. Д., Но ни один из них не решил мою проблему. Мне интересно, есть ли способ, которым я могу получить нужные данные, передаваемые в SSRS, не меняя тип даты параметра в SSRS на дату / время?

Вот фрагмент кода, с которым я работаю:

DECLARE @CBFCycleStart as datetime
DECLARE @CBFCycleEnd as datetime

SET @CBFCycleStart =
(SELECT TOP 1 [CycleStartedOn]         
FROM [IPEC_P_CIP_TKB_PREFLT]
WHERE [CycleComplete] = '1' 
ORDER BY [CycleStartedOn] DESC) 

SET @CBFCycleEnd = 
(SELECT TOP 1 [CycleEndedOn] FROM 
[IPEC_P_CIP_TKB_PREFLT] 
WHERE [CycleComplete] = '1' 
ORDER BY [CycleStartedOn] DESC)

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Я полагаю, что вы пытаетесь установить параметры отчета из набора результатов хранимой процедуры.

Вы почти на месте, добавьте еще одну строку к вашему SP.

DECLARE @CBFCycleStart as datetime
DECLARE @CBFCycleEnd as datetime

SET @CBFCycleStart =
(SELECT TOP 1 [CycleStartedOn]         
FROM [IPEC_P_CIP_TKB_PREFLT]
WHERE [CycleComplete] = '1' 
ORDER BY [CycleStartedOn] DESC) 

SET @CBFCycleEnd = 
(SELECT TOP 1 [CycleEndedOn] FROM 
[IPEC_P_CIP_TKB_PREFLT] 
WHERE [CycleComplete] = '1' 
ORDER BY [CycleStartedOn] DESC)

**select @CBFCycleStart as CBFCycleStart  , @CBFCycleEnd as CBFCycleEnd** 

назовите этот набор данных getStartAndEnd

Это даст вам набор данных с одной строкой.

Теперь перейдите к вашим параметрам и установите значения по умолчанию из этого набора данных getStartAndEnd

Дополнительное примечание:

Я думаю, вы можете переписать свой SP к этому:

select CBFCycleStart = MAX([CycleStartedOn])
     , CBFCycleEnd  = MAX(CycleEndedOn)       
FROM [IPEC_P_CIP_TKB_PREFLT]
WHERE [CycleComplete] = '1' 
0 голосов
/ 09 июля 2019

Вы можете преобразовать дату и время в строку, например:

DECLARE @CBFCycleStart nvarchar(50);
SET CBFCycleStart=CONVERT(nvarchar(50), (SELECT TOP 1 [CycleStartedOn]         
FROM [IPEC_P_CIP_TKB_PREFLT]
WHERE [CycleComplete] = '1' 
ORDER BY [CycleStartedOn] DESC), 120);
...