함수를 하나 만들고 있는데, 데이터값이 안 나오내용..^^
2008-08-23 00:00:00 ~ 2008-08-23 23:59:59인 데이터중에서 조건에 해당하는데 데이타중에서, 각 case마다 TOP 1 인 ONCENTLEV_ENTIMAGE의 필드의 값을 얻어와서 임시
테이블에 넣고 임시테이블를 리턴받 싶은데용 결과값을 보면다음과 같습니다.
MainOncEntIImage || BackOncEntImage || HakYOncEntImage || DormOncEntImage
NULL || XXXXX || NULL || NULL
NULL이 나와서 데이터를 확인해 본결과 데이터값은 분명히 존재 헙니다..^^ 그러담 case when 구문이 틀렸다는
건데 제가 case when를 첨 써는 것이라 잘 모르갰습니다. 아시는 분은 답변 좀 부탁드립니다.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[fn_test1]
(
@From varchar(50), //시간 '2008-08-23 00:00:00'
@To varchar(50) //시간이 단긴 문자열 '2008-08-23 23:59:59'
)
RETURNS @TempCalcTbl TABLE
(
MainOncEntIImage varchar(50),
BackOncEntImage varchar(50),
HakYOncEntImage varchar(50),
DormOncEntImage varchar(50)
}
AS
BEGIN
DECLARE @MainOncEntGateImage varchar(50)
DECLARE @BackOncEntGateImage varchar(50)
DECLARE @HakYOncEntGateImage varchar(50)
DECLARE @DormOncEntGateImage varchar(50)
SELECT TOP 1
@MainOncEntGateImage = CASE WHEN ONCENTLEV_ENTIMAGE IS NOT NULL AND
ONCENTLEV_ENTGATE = 'MainOncEntGate'
AND ONCENTLEV_ENTIMAGE <> ''
THEN ONCENTLEV_ENTIMAGE END,
@BackOncEntGateImage = case when ONCENTLEV_ENTIMAGE IS NOT NULL AND
ONCENTLEV_ENTGATE = 'BackOncEntGate' AND
ONCENTLEV_ENTIMAGE <> '' THEN ONCENTLEV_ENTIMAGE END,
@HakYOncEntGateImage = case when ONCENTLEV_ENTIMAGE IS NOT NULL AND
ONCENTLEV_ENTGATE = 'HakYOncEntGate' AND
ONCENTLEV_ENTIMAGE <> '' THEN ONCENTLEV_ENTIMAGE END,
@DormOncEntGateImage = case when ONCENTLEV_ENTIMAGE IS NOT NULL AND
ONCENTLEV_ENTGATE = 'DormOncEntGate' AND
ONCENTLEV_ENTIMAGE <> '' THEN ONCENTLEV_ENTIMAGE END
FROM ONCENTLEV
WHERE ONCENTLEV_ENTDATE BETWEEN @From AND @To
ORDER BY ONCENTLEV_ENTDATE DESC
INSERT @TempCalcTbl VALUES( @MainOncEntGateImage,@BackOncEntGateImage, @HakYOncEntGateImage, @DormOncEntGateImage);
RETURN
END
Go
|