按CTE Sql Server 2008計算的總減法總數我需要基於它們的行號的兩個值之間的差異。像 按照ID#
的CTE返回的數據我想要做的是有2行中rehabWait列(92-32)讀60
和排三60以及(152-92`)等等,直到有一個在patientid改變。因此,對於第11行,我想讓rehabwait成爲110(114-4)。查詢我會跑起來,但是它返回所有NULLS
with x as
(
SELECT row_number() over (order by patientid, admissiondate, claimsfromdate, datediff(dd,admissiondate, claimsfromdate))as rn,
patientid, admissiondate, claimsfromdate,
DATEDIFF(dd, admissiondate, claimsfromdate) as rehabWait, hcpcs
FROM Claims
WHERE hcpcs in ('g0151', '97001', '97002', '9339') and
claimsfromdate > admissiondate
group by patientid, admissiondate, claimsfromdate, hcpcs
--adding this group by clause will keep rehabWait from showing up
--however many times they patient has the HCPCS code for rehab
)
select x.patientid
,x.admissiondate
,x.claimsfromdate
,(select x2.rehabWait-x.rehabwait from x where x.patientid=x2.patientid
and x.rn > x2.rn and x.admissiondate=x2.admissiondate and x.claimsfromdate=x2.claimsfromdate
)
from x inner join
x as x2 on x.patientid=x2.patientid and x.admissiondate=x2.admissiondate and x.claimsfromdate = x2.claimsfromdate
請參閱我的編輯,我給你的第一個查詢並不完全符合你的要求。 – Aushin 2012-08-03 18:01:12