我們有一個存儲過程,它從幾個不同的表中提取信息以顯示一些信息。這工作正常。SQL Server存儲過程和用戶查詢之間的區別
我們現在想要「借用」一些代碼,我正在嘗試做一些開發工作。當我將存儲過程的內容複製到查詢窗口並運行它(減去存儲過程相關的東西)時,它會成功完成,但不會返回任何結果 - 事實上,#test2未被填充。通過存儲過程運行相同的結果通常會返回結果。
代碼從下面的查詢 - 存儲過程是相同的只是ALTER PROCEDURE
,我已經改變了所有的表名等等
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @reportstart smalldatetime, @reportend smalldatetime
SET @reportend = 2016-01-01
SET @reportstart = 2016-02-01
SET NOCOUNT ON;
SELECT
OPA10.[PATIENT PATHWAY IDENTIFIER], OPA10.RTTPeriod
INTO #TEST
FROM
(SELECT
PL.[PATIENT PATHWAY IDENTIFIER], PL.RTTPERIOD
FROM
[PATHWAY LTR] AS PL
INNER JOIN
[PATHWAY LTR] AS PL2 ON PL.[PATIENT PATHWAY IDENTIFIER] = PL2.[PATIENT PATHWAY IDENTIFIER]
AND PL.LTRSequence = PL2.LTRSequence +1
INNER JOIN
[PATIENT PATHWAY] AS PP ON PL.[PATIENT PATHWAY IDENTIFIER] = PP.[PATIENT PATHWAY IDENTIFIER]
WHERE
PL.ActivityType = 'OPD'
AND PL.LTRSequence = 3
AND (PL2.OPDisposal IN ('05', '08')
OR PL2.ActivityStatus IN ('DNA', 'CND'))) OPA10
SELECT DISTINCT
[PATIENT PATHWAY].[LOCAL PATIENT IDENTIFIER],
[RTT PERIOD].[PATIENT PATHWAY IDENTIFIER], pd.Surname,
[RTT PERIOD].[RTT PERIOD ID WITHIN PATHWAY],
CAST([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD START DATE] AS DATE) as 'RTT START DATE',
CAST([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] AS DATE) AS 'RTT END DATE',
[RTT PERIOD].[RTT SPECIALTY],
CAST(DATEADD(D,126,[RTT PERIOD].[REFERRAL TO TREATMENT PERIOD START DATE])AS DATE) AS 'BREACH DATE',
'BREACH FLAG' = CASE
WHEN CAST(DATEADD(D, 126, [RTT PERIOD].[REFERRAL TO TREATMENT PERIOD START DATE]) AS DATE) < CAST([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] AS DATE)
THEN 'NOT WITHIN'
ELSE 'WITHIN'
END,
--DATEDIFF(DD, CAST([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD START DATE] as date),
--CAST([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] AS date)) AS UNADJWAITDAYS,
[RTT PERIOD].[RTT CLOCK STOP ACTIVITY],
[RTT PERIOD].[RTT CLOCK STOP ACTIVITY STATUS],
[RTT PERIOD].[RTT COMMISSIONER], [RTT PERIOD].[SHARED BREACH],
[PATIENT PATHWAY SITE].[18WKSITE],
[MERGE SPECIALTY].[DESCRIPTION],
[MERGE SPECIALTY].[MERGE SPECIALTY],
--,WLREMOVAL.Comment
--,[PATHWAY LTR].[InternalPatientNumber(iSOFT-PAS)]
--,[PATHWAY LTR].[InternalEpisodeNumber(iSOFT-PAS)]
--,[PATHWAY LTR].EpsActvDtime
[PATHWAY LTR].LTRSequence,
[PATIENT PATHWAY SITE].[18WK provider]
INTO
#TEST2
FROM
[RTT PERIOD]
/* ************************
THIS CODE HAS BEEN ADDED TO GET THE SITE FLAG
************************/
INNER JOIN
[PATIENT PATHWAY SITE] ON [RTT PERIOD].[PATIENT PATHWAY IDENTIFIER] = [PATIENT PATHWAY SITE].[PATIENT PATHWAY IDENTIFIER]
/****************************************/
INNER JOIN
[PATIENT PATHWAY] ON [RTT PERIOD].[PATIENT PATHWAY IDENTIFIER] = [PATIENT PATHWAY].[PATIENT PATHWAY IDENTIFIER]
INNER JOIN
[PATHWAY LTR] ON [RTT PERIOD].[PATIENT PATHWAY IDENTIFIER] = [PATHWAY LTR].[PATIENT PATHWAY IDENTIFIER]
--and [RTT PERIOD].[RTT PERIOD ID WITHIN PATHWAY] = [PATHWAY LTR].RTTActivityID
--and [PATHWAY LTR].RTTActivityID = 1
AND [PATHWAY LTR].EpsActvDtime = [RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE]
--left outer join [iSOFT-PAS_Landing].dbo.WLREMOVAL on
--[PATHWAY LTR].[InternalPatientNumber(iSOFT-PAS)] = WLREMOVAL.InternalPatientNumber
--and [PATHWAY LTR].EpsActvDtime = WLREMOVAL.EpsActvDtimeInt
INNER JOIN
[iSOFT-PAS_Landing].dbo.PATDATA as PD ON [PATIENT PATHWAY].[InternalPatientNumber(iSOFT-PAS)] = PD.InternalPatientNumber
LEFT OUTER JOIN
[18-Weeks].dbo.[MERGE SPECIALTY] ON [MERGE SPECIALTY].[RTT SPECIALTY] = [RTT PERIOD].[RTT SPECIALTY]
WHERE
([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] >= @reportstart)
AND ([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] < @reportend)
AND ([RTT PERIOD].[RTT PERIOD TYPE] = 'N')
AND ([RTT PERIOD].[REFERRAL TO TREATMENT STATUS AT END OF PERIOD]) <>'33'
AND ([RTT PERIOD].[RTT CLOCK STOP ACTIVITY]) <> 'opd'
AND ([PATHWAY LTR].[ActivityType]) <> 'WADD'
AND ([RTT PERIOD].[RTT PERIOD ID WITHIN PATHWAY]) =1
--and [PATIENT PATHWAY SITE].[18WK provider]='RN700'
OR ([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] >= @reportstart)
AND ([RTT PERIOD].[REFERRAL TO TREATMENT PERIOD END DATE] < @reportend)
AND ([RTT PERIOD].[RTT PERIOD TYPE] = 'N')
AND ([RTT PERIOD].[REFERRAL TO TREATMENT STATUS AT END OF PERIOD]) <>'33'
AND ([RTT PERIOD].[RTT CLOCK STOP ACTIVITY]) <> 'opd'
AND ([PATHWAY LTR].[ActivityType]) = 'book'
AND ([RTT PERIOD].[RTT PERIOD ID WITHIN PATHWAY]) = 2
--and [PATIENT PATHWAY SITE].[18WK provider]='RN7
SELECT t2.*
FROM #TEST2 AS T2
LEFT OUTER JOIN #TEST AS T ON T2.[PATIENT PATHWAY IDENTIFIER] = T.[PATIENT PATHWAY IDENTIFIER]
AND T2.[RTT PERIOD ID WITHIN PATHWAY] = T.RTTPeriod
WHERE
t.[PATIENT PATHWAY IDENTIFIER] IS NULL
select * from #TEST
select * from #TEST2
-- drop table #TEST2
-- drop table #TEST
有數據你是否在同一臺服務器_and_數據庫,在那裏SP上執行這個查詢被儲存了? –