푸른솔 님이 쓰신 글 :
: 1.5에서는 서브쿼리가 안됩니다.
: 그리고 이 Sql문장도 아예 SP로 만들어 놓고 이 SP만 실행시켜 주면 간단할 것 같은데...
:
: select distinct(extract ( day from endtime)) ,
: (Select * from Get_monthly_Report_Element
: ( extract ( year from EndTime ),
: extract (month from endtime ),
: extract ( day from endtime ) ,
: extract ( day from endtime )+1 ,
: 4)
: )
: from sales
:
:
: 강재호.만해 님이 쓰신 글 :
: : 회사 업무상 보고서 결과를 만드는 쿼리만들어야 하는데
: :
: : 일반 쿼리로는 도저히 해결이 안될것 같아서
: :
: : SP를 만들었습니다.
: :
: : SP에서는 하루 하루에 대한 결과를 만들어 내는데요
: :
: : 이걸 Select문에 연동 시켜서 한달치 결과를 내게 만들려고 할려는데
: :
: : 잘안되네요
: :
: : CREATE PROCEDURE GET_Monthly_Report_Element (GroupYear int, GroupMonth int, GroupDay1 int,GroupDay2 int, GroupHour int)
: : RETURNS (
: : UsedTime int,
: : PauseTime int,
: : Prepay int,
: : Afterpay int,
: : Totalpay int,
: : TimeMember int,
: : TimeMemberpay int,
: : ServiceTime int,
: : Discount int,
: : Mileage int,
: : Mileagepay int)
: : AS
: : BEGIN
: : for select
: : sum(UsedTime) UsedTime,
: : sum(PauseTime) PauseTime,
: : sum(Prepay) Prepay ,
: : sum(Afterpay) Afterpay,
: : sum(Totalpay) Totalpay,
: : sum(TimeMember) TimeMember,
: : sum(TimeMemberpay) TimeMemberpay,
: : sum(ServiceTime) ServiceTime,
: : sum(Discount) Discount,
: : sum(Mileage) Mileage,
: : sum(Mileagepay) Mileagepay
: : FROM sales
: : WHERE endtime between
: : cast (cast (:GroupMonth as Char(2))||'-'||
: : cast (:GroupDay1 as Char(2)) ||'-'||
: : cast (:GroupYear as Char(4)) ||' '||
: : cast (:GroupHour as char(2)) ||':00:00' as Date)
: : and
: : cast (cast (:GroupMonth as Char(2))||'-'||
: : cast (:GroupDay2 as Char(2))||'-'||
: : cast (:GroupYear as Char(4)) ||' '||
: : cast (:GroupHour as char(2)) ||':00:00' as Date)
: :
: : INTO : UsedTime , PauseTime , Prepay , Afterpay , Totalpay ,
: : TimeMember , TimeMemberpay , ServiceTime , Discount , Mileage , Mileagepay
: : DO
: : SUSPEND;
: : END
: :
: : GET_Monthly_Report_Element 이게 하루치 보고서를 만드는 쿼리이고요
: :
: : 사용은 이렇게 합니다.
: :
: : select * from GET_Monthly_Report (2006 , 2 ,16,17, 1)
: :
: : 이 쿼리를 한달의 날수 만큼 돌려야 됩니다.
: :
: : 그래서 제가 작성한 쿼리가 다음과 같습니다.
: :
: : select distinct(extract ( day from endtime)) ,
: : (Select * from Get_monthly_Report_Element
: : ( extract ( year from EndTime ),
: : extract (month from endtime ),
: : extract ( day from endtime ) ,
: : extract ( day from endtime )+1 ,
: : 4)
: : )
: : from sales
: :
: : 이렇게 해서 전체 데이타를 가져 오게 할려고 하는데요
: :
: : 하루치 그러니깐 Get_monthly_Report_Element 가 개별적으로는 잘 작동 하는데
: :
: : 저렇게 쿼리에 붙여 놓으니 작동이 안되고 있습니다.
: :
: : 작업 환경은 FireBird 1.5를 이용하고 있습니다.
: :
: : SP를 호출하는 부분에서 문법 에러가 발생 하는데요 도저히 뭐가 잘못 된건지 알수가 없네요
: :
: : 도움 바랍니다~
IBExpert에서 문법에러를 보고 하고 있습니다.
select distinct(extract ( day from endtime)) ,
(Select * from Get_monthly_Report_Element
( extract ( year from EndTime ),
extract (month from endtime ),
extract ( day from endtime ) ,
extract ( day from endtime )+1 ,
4)
)
from sales
Invalid token Dynamic SQL Error
SQL error code = -104 Token unknown - line 2, char 9 *.
SP로 등록 시킨 상태에서 저렇게 나오네요 Ib Expoert가 구 버젼이라서 그런가요?
아니면 FireBird가 지원을 못해 주는 건가요?
아니면 아에 쿼리가 틀린건지도 ...
|