새로운 월이 될때마다 시리얼번호를 초기화 해서 사용하려고 아래와 같은 코드를 만들었습니다.
레코드에 기존의 데이타가 들어 있을때는 정상적으로 동작하는데 ,
null반환하지 마라고 COALESCE 을 사용하여 null일때 리턴할 데이타를 지정해줬는데도
한개의 자료도 없을때 (그러니까 최초의 데이타생성시)는 null만 반환합니다.
주력DB를 MS만 쓰다가 이제부터 FIREBIRD로 바꾸려고 하는데 힘드네요....
조언부탁드립니다.
SELECT
COALESCE ( KK.CUSTCODESERIAL + 1 , 1 ) AS LASTCODE
FROM
(
SELECT
FIRST 1 CUSTCODESERIAL
FROM
GFCUST
WHERE
CUSTCODEY = '2007'
AND
CUSTCODEM = '11'
ORDER BY
CUSTCODEY DESC , CUSTCODEM DESC
) AS KK
그리고
SELECT
CASE KK.CUSTCODESERIAL
WHEN NULL THEN 1
ELSE KK.CUSTCODESERIAL + 1
END AS LASTCODE
FROM
(
SELECT
FIRST 1 CUSTCODESERIAL
FROM
GFCUST
WHERE
CUSTCODEY = '2007'
AND
CUSTCODEM = '11'
ORDER BY
CUSTCODEY DESC , CUSTCODEM DESC
) AS KK
이렇게 해도 마찬가지입니다.
|