--功能:管理中心查询景点佣金
--参数:
-- p_regionCode 为地区代码
-- p_balanceState为结算状态
-- p_receiveAgency为接团旅行社企业代码,可以为"All";
-- p_sightCode为景点代码,可以为"All";
-- p_startTime为结算开始时间;
-- p_endTime为结算结束时间;
Procedure center_Sight_Commission(
p_regionCode In varchar2,
p_balanceState In Varchar2,
p_receiveAgency In Varchar2,
p_sightCode In Varchar2,
p_startTime In Varchar2,
p_endTime In Varchar2,
cur_sightAccount Out c_Cursor
)Is
Tempstarttime Date;
Tempendtime Date;
Begin
Tempstarttime := To_Date(p_Starttime, 'YYYY-MM-DD');
Tempendtime := To_Date(p_Endtime, 'YYYY-MM-DD') + 1;
If p_receiveAgency='All' And p_sightCode='All' And p_balanceState='balance' Then
Open cur_sightAccount For
Select e2.enterprise_code As agencyCode,e2.China_Short_Name As agencyShortName,
e1.enterprise_code As sightCode,
e1.china_short_name As sightShortName,
Sum(s2.sightFee) As sightRealFee,Sum(s1.Region_Commission) As RegionCommission,
Sum(s1.Receive_Agency_Commission) As ReceiveAgencyCommission,Sum(s1.Operate_Fee) As OperateFee,
Sum(s1.Quality_Promise_Fee) As QualityPromiseFee
From
(Select Form_Commission_Account.Form_Code,
Form_Commission_Account.Enterprise_Code As receiveEnterpriseCode,
sum(Form_Commission_Account.Region_Commission) As Region_Commission,
sum(Form_Commission_Account.Receive_Agency_Commission) As Receive_Agency_Commission,
sum(Form_Commission_Account.Operate_Fee) As Operate_Fee,
sum(Form_Commission_Account.Quality_Promise_Fee) As Quality_Promise_Fee
From Form_Commission_Account,Form_Balance_Account,enterprise
Where
Form_Commission_Account.Form_Code=Form_Balance_Account.Form_Code And
Form_Commission_Account.Enterprise_Code=enterprise.enterprise_code And
enterprise.type_flag_code='S' And
enterprise.region_code=upper(p_regionCode) And
Form_Balance_Account.Balance_Date Between Tempstarttime And Tempendtime
Group By Form_Commission_Account.Form_Code,Form_Commission_Account.Enterprise_Code
) s1,
(Select sight_order.form_code,sight_order.enterprise_code,sum(sight_order.ic_amount) As sightFee
From sight_order,Form_Balance_Account,enterprise
Where sight_order.Form_Code=Form_Balance_Account.Form_Code And
sight_order.enterprise_code=enterprise.enterprise_code And
enterprise.region_code=upper(p_regionCode) And
Form_Balance_Account.Balance_Date Between Tempstarttime And Tempendtime
Group By sight_order.form_code,sight_order.enterprise_code
) s2,receive_form,enterprise e1,enterprise e2
Where s2.Form_Code=s1.form_code And s2.enterprise_code=s1.receiveEnterpriseCode
And s2.Form_Code=receive_form.Form_Code
And s2.enterprise_code=e1.enterprise_code
And receive_form.enterprise_code=e2.enterprise_code
Group By e2.China_Short_Name,e2.enterprise_code,e1.enterprise_code,e1.china_short_name
Order By e2.enterprise_code,e2.China_Short_Name;
Elsif p_receiveAgency='All' And p_sightCode='All' And p_balanceState='unbalance' Then.........以下省略.
以下是把上述存储过程条件替换的sql语句.
--参数:
-- p_regionCode 为地区代码
-- p_balanceState为结算状态
-- p_receiveAgency为接团旅行社企业代码,可以为"All";
-- p_sightCode为景点代码,可以为"All";
-- p_startTime为结算开始时间;
-- p_endTime为结算结束时间;
Procedure center_Sight_Commission(
p_regionCode In varchar2,
p_balanceState In Varchar2,
p_receiveAgency In Varchar2,
p_sightCode In Varchar2,
p_startTime In Varchar2,
p_endTime In Varchar2,
cur_sightAccount Out c_Cursor
)Is
Tempstarttime Date;
Tempendtime Date;
Begin
Tempstarttime := To_Date(p_Starttime, 'YYYY-MM-DD');
Tempendtime := To_Date(p_Endtime, 'YYYY-MM-DD') + 1;
If p_receiveAgency='All' And p_sightCode='All' And p_balanceState='balance' Then
Open cur_sightAccount For
Select e2.enterprise_code As agencyCode,e2.China_Short_Name As agencyShortName,
e1.enterprise_code As sightCode,
e1.china_short_name As sightShortName,
Sum(s2.sightFee) As sightRealFee,Sum(s1.Region_Commission) As RegionCommission,
Sum(s1.Receive_Agency_Commission) As ReceiveAgencyCommission,Sum(s1.Operate_Fee) As OperateFee,
Sum(s1.Quality_Promise_Fee) As QualityPromiseFee
From
(Select Form_Commission_Account.Form_Code,
Form_Commission_Account.Enterprise_Code As receiveEnterpriseCode,
sum(Form_Commission_Account.Region_Commission) As Region_Commission,
sum(Form_Commission_Account.Receive_Agency_Commission) As Receive_Agency_Commission,
sum(Form_Commission_Account.Operate_Fee) As Operate_Fee,
sum(Form_Commission_Account.Quality_Promise_Fee) As Quality_Promise_Fee
From Form_Commission_Account,Form_Balance_Account,enterprise
Where
Form_Commission_Account.Form_Code=Form_Balance_Account.Form_Code And
Form_Commission_Account.Enterprise_Code=enterprise.enterprise_code And
enterprise.type_flag_code='S' And
enterprise.region_code=upper(p_regionCode) And
Form_Balance_Account.Balance_Date Between Tempstarttime And Tempendtime
Group By Form_Commission_Account.Form_Code,Form_Commission_Account.Enterprise_Code
) s1,
(Select sight_order.form_code,sight_order.enterprise_code,sum(sight_order.ic_amount) As sightFee
From sight_order,Form_Balance_Account,enterprise
Where sight_order.Form_Code=Form_Balance_Account.Form_Code And
sight_order.enterprise_code=enterprise.enterprise_code And
enterprise.region_code=upper(p_regionCode) And
Form_Balance_Account.Balance_Date Between Tempstarttime And Tempendtime
Group By sight_order.form_code,sight_order.enterprise_code
) s2,receive_form,enterprise e1,enterprise e2
Where s2.Form_Code=s1.form_code And s2.enterprise_code=s1.receiveEnterpriseCode
And s2.Form_Code=receive_form.Form_Code
And s2.enterprise_code=e1.enterprise_code
And receive_form.enterprise_code=e2.enterprise_code
Group By e2.China_Short_Name,e2.enterprise_code,e1.enterprise_code,e1.china_short_name
Order By e2.enterprise_code,e2.China_Short_Name;
Elsif p_receiveAgency='All' And p_sightCode='All' And p_balanceState='unbalance' Then.........以下省略.
以下是把上述存储过程条件替换的sql语句.
e1.enterprise_code As sightCode,
e1.china_short_name As sightShortName,
Sum(s2.sightFee) As sightRealFee,Sum(s1.Region_Commission) As RegionCommission,
Sum(s1.Receive_Agency_Commission) As ReceiveAgencyCommission,Sum(s1.Operate_Fee) As OperateFee,
Sum(s1.Quality_Promise_Fee) As QualityPromiseFee
From
(Select Form_Commission_Account.Form_Code,
Form_Commission_Account.Enterprise_Code As receiveEnterpriseCode,
sum(Form_Commission_Account.Region_Commission) As Region_Commission,
sum(Form_Commission_Account.Receive_Agency_Commission) As Receive_Agency_Commission,
sum(Form_Commission_Account.Operate_Fee) As Operate_Fee,
sum(Form_Commission_Account.Quality_Promise_Fee) As Quality_Promise_Fee
From Form_Commission_Account,Form_Balance_Account,enterprise
Where
Form_Commission_Account.Form_Code=Form_Balance_Account.Form_Code And
Form_Commission_Account.Enterprise_Code=enterprise.enterprise_code And
enterprise.type_flag_code='S' And
enterprise.region_code=upper('01') And
Form_Balance_Account.Balance_Date Between to_date('2005-11-01','yyyy-mm-dd') And to_date('2005-12-01','yyyy-mm-dd')
Group By Form_Commission_Account.Form_Code,Form_Commission_Account.Enterprise_Code
) s1,
(Select sight_order.form_code,sight_order.enterprise_code,sum(sight_order.ic_amount) As sightFee
From sight_order,Form_Balance_Account,enterprise
Where sight_order.Form_Code=Form_Balance_Account.Form_Code And
sight_order.enterprise_code=enterprise.enterprise_code And
enterprise.region_code=upper('01') And
Form_Balance_Account.Balance_Date Between to_date('2005-11-01','yyyy-mm-dd') And to_date('2005-12-01','yyyy-mm-dd')
Group By sight_order.form_code,sight_order.enterprise_code
) s2,receive_form,enterprise e1,enterprise e2
Where s2.Form_Code=s1.form_code And s2.enterprise_code=s1.receiveEnterpriseCode
And s2.Form_Code=receive_form.Form_Code
And s2.enterprise_code=e1.enterprise_code
And receive_form.enterprise_code=e2.enterprise_code
Group By e2.China_Short_Name,e2.enterprise_code,e1.enterprise_code,e1.china_short_name
Order By e2.enterprise_code,e2.China_Short_Name;为什么存储过程无结果,下面一个sql语句,结果正确,郁闷!!!!!!!!!!!!!!!
Tempstarttime := To_Date(p_Starttime, 'YYYY-MM-DD'); --2005-11-01
Tempendtime := To_Date(p_Endtime, 'YYYY-MM-DD') + 1; -- 这里是11月2号不是12月1号Between Tempstarttime And Tempendtime而sql里:
Between to_date('2005-11-01','yyyy-mm-dd') And to_date('2005-12-01','yyyy-mm-dd')