안녕하세요...여러 고수님들...
다름이 아니라...
Query Analyzer에서 sql문를 작성해서 실행하고 값이 나오는걸 확인 후...
델파이에 TQuery에 넣어서 Active 하면...
invalid use of keyword
Token : @i
Line Number 1
이런 에러가 납니다...
쿼리문의 일부분은 이렇습니다.
DECLARE @i char(2), @m char(2), @n char(2)
SET @i = month(getdate())
SET @n = @i-1
IF @i <= 10
BEGIN
SELECT @m = '0' + @n
END
ELSE IF @i > 10
BEGIN
SELECT @m = @i
END
SELECT a.year,
a.partcd,
a.ap_name,
a.class,
CASE WHEN @i = 2 THEN a.month1
WHEN @i = 3 THEN a.month2
WHEN @i = 4 THEN a.month3
WHEN @i = 5 THEN a.month4
WHEN @i = 6 THEN a.month5
WHEN @i = 7 THEN a.month6
WHEN @i = 8 THEN a.month7
WHEN @i = 9 THEN a.month8
WHEN @i = 10 THEN a.month9
WHEN @i = 11 THEN a.month10
WHEN @i = 12 THEN a.month11
WHEN @i = 1 THEN a.month12
END AS P_Saup,
(SELECT b.SM_Siljuk
FROM rto010 b
WHERE b.kind like 'P01'
AND b.partcd = '00002'
AND b.yymm = substring('200103',1,4) + @m) P_Siljuk
FROM kuopbem20 a LEFT OUTER JOIN rto010 b
on a.partcd = b.partcd
AND b.kind LIKE 'P01'
AND b.yymm = substring('200103',1,4)+@i
WHERE a.class = '1' AND a.partcd = '00002'
고수님들 부탁 드리겠습니다...
그럼 즐코 하시길...(__)
> 안녕하세요...여러 고수님들...
> 다름이 아니라...
> Query Analyzer에서 sql문를 작성해서 실행하고 값이 나오는걸 확인 후...
> 델파이에 TQuery에 넣어서 Active 하면...
> invalid use of keyword
> Token : @i
> Line Number 1
> 이런 에러가 납니다...
> 쿼리문의 일부분은 이렇습니다.
>
> DECLARE @i char(2), @m char(2), @n char(2)
> SET @i = month(getdate())
> SET @n = @i-1
>
> IF @i <= 10
> BEGIN
> SELECT @m = '0' + @n
> END
> ELSE IF @i > 10
> BEGIN
> SELECT @m = @i
> END
>
> SELECT a.year,
> a.partcd,
> a.ap_name,
> a.class,
> CASE WHEN @i = 2 THEN a.month1
> WHEN @i = 3 THEN a.month2
> WHEN @i = 4 THEN a.month3
> WHEN @i = 5 THEN a.month4
> WHEN @i = 6 THEN a.month5
> WHEN @i = 7 THEN a.month6
> WHEN @i = 8 THEN a.month7
> WHEN @i = 9 THEN a.month8
> WHEN @i = 10 THEN a.month9
> WHEN @i = 11 THEN a.month10
> WHEN @i = 12 THEN a.month11
> WHEN @i = 1 THEN a.month12
> END AS P_Saup,
> (SELECT b.SM_Siljuk
> FROM rto010 b
> WHERE b.kind like 'P01'
> AND b.partcd = '00002'
> AND b.yymm = substring('200103',1,4) + @m) P_Siljuk
> FROM kuopbem20 a LEFT OUTER JOIN rto010 b
> on a.partcd = b.partcd
> AND b.kind LIKE 'P01'
> AND b.yymm = substring('200103',1,4)+@i
> WHERE a.class = '1' AND a.partcd = '00002'
>
> 고수님들 부탁 드리겠습니다...
> 그럼 즐코 하시길...(__)
Query component의 SQL에는 그런 복잡한 query는 들어가면 안되는 것으로 알고있습니다.
Declare라든지.... 변수 사용등....
query를 만드실 때 변수 값들을 계산하셔서 만드셔야 할 것 같네요.