회사 업무상 보고서 결과를 만드는 쿼리만들어야 하는데
일반 쿼리로는 도저히 해결이 안될것 같아서
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를 호출하는 부분에서 문법 에러가 발생 하는데요 도저히 뭐가 잘못 된건지 알수가 없네요
도움 바랍니다~
|