안녕하세요
postgresql를 사용하는 초보입니다..
다름이 아니라 질문이 있어서요..
CREATE OR REPLACE FUNCTION test(varchar)
RETURNS int8 AS
'
declare
sum_t int8;
count_t int8;
date_a varchar;
date_t ALIAS FOR $1;
begin
date_a = date_t;
SELECT (sum(trunc(COALESCE(n.new_putamount,0)+COALESCE(n.new_putaddamount,0),-1))+COALESCE(sum(t.dc_moneydc),0))::int8,count(n.new_num)::int8
into sum_t, count_t
FROM new_billing n,
contract c,
ip_account ip,
products pro,
member m,
company o,
(select c.con_idx,sum(d.dc_moneydc)as dc_moneydc
from new_billing n left outer join dc d on n.new_idx=d.new_idx, contract c,products pro
where c.pay_idx=pro.pay_idx and pro.pro_title_name=\'IPIX\' and substr(n.new_con_date,1,7)= date_a
and n.new_mem_type=\'S\' and n.con_idx=c.con_idx and n.new_start_date < COALESCE(d.dc_end_date,now()+\'1 day\')
group by c.con_idx)as t
WHERE m.mem_idx=c.mem_idx and t.con_idx=c.con_idx
AND n.con_idx=c.con_idx
AND ip.con_idx=c.con_idx
AND c.pay_idx=pro.pay_idx
AND o.com_code=c.con_code
AND n.new_flag = \'B\'
AND m.mem_member_type!= \'G\'
AND pro.pay_flag= \'F\'
AND n.new_mem_type= \'S\'
AND c.con_type= \'S\'
AND substr(n.new_con_date,\'1\',\'7\')= date_a
AND pro.pro_title_name=\'IPIX\'
AND o.com_flag=\'I\'
AND (c.con_type!=\'F\' AND c.con_type!=\'C\')
group by pro.pro_type_vat;
return sum_t,count_t;
end
'
LANGUAGE 'plpgsql' VOLATILE;
이 쿼리는 이번달 미납요금과 미납된 사람에 대한 카운트를 구하는 쿼리입니다.
근데 이 쿼리를 FUNCTIONS에 추가시킨 후 select test('2007-12');라는 select문을
날렸더니 에러메세지에 2개의 값을 가지고 올수 없다고 하네요..
이렇게 쓸때, 2개이상의 값을 리턴 받을 수 있을까요????
많은 고수님들의 관심 부탁드립니다..... |