It seems to me that a bit of divide and conquer will make this run much faster... when you're all done, look for PatientID's that have a Parm of 5. Dunno if I put your parameters in the correct order or not...
SELECT CAST(pd.TodayID AS INT) AS TodayID,pd.PreviousDayID,pd.PatientID,1 AS Parm
INTO #TmpTable
FROM [Patient Data] pd
WHERE pd.[Open%] BETWEEN -1.61 AND -0.61
AND pd.[High%] BETWEEN -0.28 AND 0.72
AND pd.[Low%] BETWEEN -1.61 AND -0.61
AND pd.[Close%] BETWEEN -1.39 AND -0.39
INSERT INTO #TmpTable
(TodayID,PreviousDayID,PatientID,Parm)
SELECT pd.TodayID,pd.PreviousDayID,pd.PatientID,2 AS Parm
FROM [Patient Data] pd,
#TmpTable t
WHERE t.TodayID = pd.PreviousDayID
AND t.PatientID = pd.PatientID
AND t.Parm = 1
AND pd.[Open%] BETWEEN 1.07 AND 2.07
AND pd.[High%] BETWEEN 1.29 AND 2.29
AND pd.[Low%] BETWEEN -0.5 AND 0.5
AND pd.[Close%] BETWEEN 1.29 AND 2.29
INSERT INTO #TmpTable
(TodayID,PreviousDayID,PatientID,Parm)
SELECT pd.TodayID,pd.PreviousDayID,pd.PatientID,3 AS Parm
FROM [Patient Data] pd,
#TmpTable t
WHERE t.TodayID = pd.PreviousDayID
AND t.PatientID = pd.PatientID
AND t.Parm = 2
AND pd.[Open%] BETWEEN -0.5 AND 0.5
AND pd.[High%] BETWEEN -0.5 AND 0.5
AND pd.[Low%] BETWEEN -1.16 AND -0.16
AND pd.[Close%] BETWEEN -0.5 AND 0.5
INSERT INTO #TmpTable
(TodayID,PreviousDayID,PatientID,Parm)
SELECT pd.TodayID,pd.PreviousDayID,pd.PatientID,4 AS Parm
FROM [Patient Data] pd,
#TmpTable t
WHERE t.TodayID = pd.PreviousDayID
AND t.PatientID = pd.PatientID
AND t.Parm = 3
AND pd.[Open%] BETWEEN -0.5 AND 0.5
AND pd.[High%] BETWEEN -0.06 AND 0.94
AND pd.[Low%] BETWEEN -0.94 AND 0.06
AND pd.[Close%] BETWEEN -0.5 AND 0.5
INSERT INTO #TmpTable
(TodayID,PreviousDayID,PatientID,Parm)
SELECT pd.TodayID,pd.PreviousDayID,pd.PatientID,5 AS Parm
FROM [Patient Data] pd,
#TmpTable t
WHERE t.TodayID = pd.PreviousDayID
AND t.PatientID = pd.PatientID
AND t.Parm = 4
AND pd.[Open%] BETWEEN -0.94 AND 0.06
AND pd.[High%] BETWEEN 0.38 AND 1.38
AND pd.[Low%] BETWEEN -0.94 AND 0.06
AND pd.[Close%] BETWEEN -0.5 AND 0.5
--Jeff Moden
Change is inevitable... Change for the better is not.