Bạn không thể chỉ định một biến như vậy. Ngoài ra, điểm mấu chốt là gì? Bạn đang sử dụng biến đó ở đâu? Chỉ cần xóa set @MYYEAR =
và bạn sẽ ổn. Nếu bạn thực sự muốn gán biến đó với logic đó, hãy thực hiện nó bên ngoài SELECT
chính của bạn tuyên bố.
declare @MYYEAR int
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 SomeTable)
SELECT
SERVICE_GROUP,
SERVICE_CATEGORY,
@MYYEAR
FROM
SomeOtherTable