Declare procursor CURSOR FOR
SELECT CLAIMNO from RPT_CLAIM_MD_COMBO
DECLARE @myyear Integer
Declare @provar varchar(22)
open procursor
fetch next from procursor into @provar
WHILE(@@FETCH_STATUS = 0)
BEGIN
SET @myyear = (SELECT
CASE
WHEN CONVERT(INTEGER,BTHDAT) = 0 THEN 0
WHEN datepart(DY,convert(date, BTHDAT)) > datepart(DY,'2015/07/01') THEN DATEDIFF(YEAR, convert(date, BTHDAT),'2015/07/01') - 1
ELSE DATEDIFF(YEAR,convert(date, BTHDAT),'2015/07/01')
END
from RPT_CLAIM_MD_COMBO WHERE CLAIMNO = @provar)
SELECT SERVICE_GROUP, SERVICE_CATEGORY,
CASE
WHEN @myyear - 2015 <= 0 AND @myyear - 2015 >= 5 THEN 'Early Child'
WHEN @myyear - 2015 <= 6 AND @myyear - 2015 >= 12 THEN 'Child'
WHEN @myyear - 2015 <= 13 AND @myyear - 2015 >= 17 THEN 'Adolescent'
WHEN @myyear - 2015 <= 18 AND @myyear - 2015 >= 21 THEN 'Transitional'
WHEN @myyear - 2015 <= 22 AND @myyear - 2015 >= 64 THEN 'Adult'
WHEN @myyear - 2015 >= 65 THEN 'Geriatric'
ELSE '0'
END AS Age_desc,
SUM(CONVERT(MONEY, TOPAY)) AS PAID_AMT
FROM RPT_CLAIM_MD_COMBO
WHERE SERVICE_FY = '2016' and DISTYP = 'P' AND CLAIMNO = @provar
GROUP BY
SERVICE_GROUP,SERVICE_CATEGORY,
CASE
WHEN @myyear - 2015 <= 0 AND @myyear - 2015 >= 5 THEN 'Early Child'
WHEN @myyear - 2015 <= 6 AND @myyear - 2015 >= 12 THEN 'Child'
WHEN @myyear - 2015 <= 13 AND @myyear - 2015 >= 17 THEN 'Adolescent'
WHEN @myyear - 2015 <= 18 AND @myyear - 2015 >= 21 THEN 'Transitional'
WHEN @myyear - 2015 <= 22 AND @myyear - 2015 >= 64 THEN 'Adult'
WHEN @myyear - 2015 >= 65 THEN 'Geriatric'
ELSE '0'
END
fetch next from procursor into @provar
END
CLOSE procursor
我想要做的是從RPT_CLAIM_MD_COMBO表中獲取所有用戶。第一次檢查他們的年齡。如果用戶的出生日期的DY> 2015/07/01的DY,則將他的年齡減少1,否則保持相同的年齡。Ms sql server - 爲變量分配一個日期
一旦計算出年齡,我必須根據年齡(i,e按年齡分組)顯示支出。 我編寫了這麼多,我收到此錯誤 消息329,級別16,狀態1,行21每個GROUP BY表達式必須至少包含一個列引用
錯誤?什麼錯誤?沒有看到任何錯誤。 – mustaccio
立即檢查圖片 – shailuk