0
저장 프로 시저를 호출하는 SSRS 보고서가 있습니다.보고서 작성기를 사용하여 SSRS에서 오늘 날짜까지 SQL 데이터 집합을 필터링하려고합니다.
USE [TSC-Telaid]
GO
/****** Object: StoredProcedure [dbo].[TW_spRPTAllReceiverInventory] Script Date: 10/4/2017 2:06:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TW_spRPTAllReceiverInventory]
@SiteId varchar(50),
@ReceiverId int
AS
BEGIN
DECLARE @SQL varchar(8000), @Index int, @Value varchar(500), @Source varchar(100)
SELECT @Index = CHARINDEX('Initial Catalog=', ConnectionString) + 16, @Value = ConnectionString
FROM CustomerSetting
WHERE SiteId = @SiteId
SET @Source = '[' + SUBSTRING(@Value , @Index, CHARINDEX(';', @Value, @Index) - @Index) + ']'
SET @SQL = 'SELECT R.SiteId, L.*
FROM ' + @Source + '.[dbo].[vwReceiver] R JOIN ' +
@Source + '.[dbo].[vwInventory] L ON R.ReceiverId = L.ReceiverId
WHERE R.ReceiverId = ' + CAST(@ReceiverId as varchar)
EXEC(@SQL)
END
내가 데이터 세트에 @SiteId & @ReceiverID 전달 : 다음 절차입니다. 내가 가져온 필드 중 하나는 DateReceived입니다. DateReceived = today() 만 반환하지만 작동하지 않도록 데이터 집합을 필터링하려고합니다.
가 나는 또한 DateAdd 함수 BETWEEN DateReceived에 필터 식을 설정하려고했습니다 ("D"를 - 1, 오늘()) & DateAdd 함수 ("D", 1, 오늘은())나는 아니에요 SQL은 처음이지만 SSRS는 처음이다.
구문이 올바르지 않습니다. 날짜 부분 식별자 (' ''d' '') 주변의 따옴표를 제거하고'today()'를'getdate()'로 변경하십시오. 또는'... DateReceived> = cast (getdate()로 날짜)'와 같은 것을 할 수 있습니다. 현재 자정부터 자정까지 모든 것을 얻을 수 있습니다. – Xedni
@Xedri OP는 SSRS 함수를 사용하므로'today'가 유효합니다. @ 드류 잭슨. 'DateReceived' 열이 날짜 또는 날짜 시간을 반환합니까? –
그것은 datetime을 반환합니다 –