1、定义包

CREATE OR REPLACE package p_view_param  is
--定义开始日期--
function set_beginTime(beginTime varchar2) return varchar2;
function get_beginTime return varchar2;
--定义结束日期--
function set_endTime(endTime varchar2) return varchar2;
function get_endTime return varchar2; end p_view_param;
/

2、定义包体

create or replace package body p_view_param is
parambeginTime varchar2(20);
paramendTime varchar2(20);
-- Param
function set_beginTime(beginTime varchar2) return varchar2 is
begin
parambeginTime:=beginTime;
return beginTime;
end; function get_beginTime return varchar2 is
begin
return parambeginTime;
end;
-- Type
function set_endTime(endTime varchar2) return varchar2 is
begin
paramendTime:=endTime;
return endTime;
end; function get_endTime return varchar2 is
begin
return paramendTime;
end; end p_view_param;

3、定义参数视图

create or replace view p_view_num as
select mxmc,max(xssl) as xssl,max(mwje) as mwje,max(qtje) as qtje,max(mwje +nvl(qtje,0)) as hjje ,round((max(mwje)+max(nvl(qtje,0)))/max(xssl),2) as pjje, max(mwzs) as mwzs,max(mwye) as mwye,max(azyw) as azyw,max(qcyw) as qcyw from
(
select mxmc
, (select count(*) from ywdjb where t1.mxmc=mxmc and to_char(rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(rq,'yyyy-mm-dd')<=p_view_param.get_endTime() ) as xssl --销售数量
,(select sum(fyb_mx.ssje) from fyb_mx ,ywdjb, fmdm where ywdjb.djh=fyb_mx.ywdjh and fmdm.FMDM=fyb_mx.fmdm and ywdjb.mxmc=t1.mxmc and fyb_mx.zxflag=''
and to_char(ywdjb.rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(ywdjb.rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and fmdm.mwje_flag='' ) as mwje -- 墓位金额
,(select sum(fyb_mx.ssje) from fyb_mx ,ywdjb, fmdm where ywdjb.djh=fyb_mx.ywdjh and fmdm.FMDM=fyb_mx.fmdm and ywdjb.mxmc=t1.mxmc and fyb_mx.zxflag=''
and to_char(ywdjb.rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(ywdjb.rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and (fmdm.mwje_flag<>'' or fmdm.mwje_flag is null) ) as qtje -- 其他金额
, (select count(*) from mwdmxx where mxdmmc=t1.mxmc) as mwzs --墓位总数
, (select count(*) from mwdmxx where mxdmmc=t1.mxmc and mwzt='') as mwye --待售墓位数量
, ( select count(*) from wrxxb,ywdjb where ywdjb.mxmc=t1.mxmc and wrxxb.djh=ywdjb.djh and to_char(azrq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(azrq,'yyyy-mm-dd')<=p_view_param.get_endTime() ) as azyw -- 安葬数量
, ( select count(*) from qtywb where qtywb.mxmc=t1.mxmc and ywdm='' and azfsdm='' and to_char(rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(rq,'yyyy-mm-dd')<=p_view_param.get_endTime() ) as qcyw -- 迁出数量
from
(
select distinct mxmc from ywdjb
where azfsdm='' and to_char(rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and zxflag<>''
) t1 ) group by mxmc
union all --加入退墓和迁出
select mxmc,max(xssl) as xssl,max(mwje) as mwje,max(qtje) as qtje,max(mwje +nvl(qtje,0)) as hjje ,0 as pjje, max(mwzs) as mwzs,max(mwye) as mwye,max(azyw) as azyw,max(qcyw) as qcyw from
(
select mxmc
, (select count(*) from qtywb where t1.mxmc=mxmc and to_char(rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and (ywdm='' or ywdm='') ) * -1 as xssl --销售数量
,(select sum(fyb_mx.ssje) from fyb_mx ,qtywb, fmdm where qtywb.ywdjh=fyb_mx.ywdjh and fmdm.FMDM=fyb_mx.fmdm and qtywb.mxmc=t1.mxmc and fyb_mx.zxflag=''
and to_char(qtywb.rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(qtywb.rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and fmdm.mwje_flag='' and (qtywb.ywdm='' or qtywb.ywdm='') ) as mwje -- 墓位金额
,(select sum(fyb_mx.ssje) from fyb_mx ,qtywb, fmdm where qtywb.ywdjh=fyb_mx.ywdjh and fmdm.FMDM=fyb_mx.fmdm and qtywb.mxmc=t1.mxmc and fyb_mx.zxflag=''
and to_char(qtywb.rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(qtywb.rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and (fmdm.mwje_flag<>'' or fmdm.mwje_flag is null) and (qtywb.ywdm='' or qtywb.ywdm='') ) as qtje -- 其他金额
, 0 as mwzs --墓位总数
, 0 as mwye --待售墓位数量
, 0 as azyw -- 安葬数量
, 0 as qcyw -- 迁出数量
from
(
select distinct mxmc from qtywb
where azfsdm='' and to_char(rq,'yyyy-mm-dd')>=p_view_param.get_beginTime() and to_char(rq,'yyyy-mm-dd')<=p_view_param.get_endTime() and zxflag<>'' and (ywdm='' or ywdm='')
) t1
) group by mxmc order by mxmc

查询方法:

SELECT * FROM p_view_num WHERE p_view_param.set_beginTime('2017-01-01')='2017-01-01' and p_view_param.set_endTime('2017-05-01')='2017-05-01'

oracle 定义带参数的视图的更多相关文章

  1. Oracle游标带参数

    Oracle游标是可以带参数的,而SqlServer的游标就不可以了 create or replace procedure a as cursor b(c_id int)is select * fr ...

  2. spring配置带参数的视图解析器:ParameterMethodNameResolver

    1.配置处理器 <!-- 处理器 --> <bean id="myController" class="cn.cnsdhzzl.controller.M ...

  3. oracle存储过程(带参数的存储过程)

    带参数的存储过程 举例:为指定的员工涨100元的工资,打印涨前和涨后的工资 如果带参,需要指定是输入参数还是输出参数 create or replace procedure raisesalary(e ...

  4. Oracle中的带参数的视图--我们致力于打造人力资源软件

    创建包和包体 create or replace package pkg_pv is procedure set_pv(pv varchar2); function get_pv return var ...

  5. python_如何定义带参数的装饰器?

    案例: 实现一个装饰器,用它来检查被装饰函数的参数类型. 需求: 装饰器可以通过函数,指明函数参数类型,进行函数调用的时候,传入参数,检测到不匹配时,抛出异常 如何解决这个问题? 先要获取函数的签名, ...

  6. 带参数的URLconf

    我们在Django建立helloworld自定义页面创建的页面,只能算是一个静态页,发起一个请求,返回一个固定的值,并不能满足我们动态的需求.今天我们创建一个带参数的URLconf,根据参数展示不同的 ...

  7. Java 第13章 带参数的方法

    带参数的方法 无参方法有那几个组成部分? 调用无参方法的两种形式是什么? 第一种:同一个类中的方法调用 直接用方法名 show(): 第二种:不同类中的方法调用 -->对象实例化 -->对 ...

  8. Python带参数的装饰器

    在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...

  9. Grovvy带参数的闭包

    定义带参数的闭包:

随机推荐

  1. C++中嵌入python程序——命令行模式

    http://blog.csdn.net/yiyouxian/article/details/51992721

  2. EF code First数据迁移学习笔记

    准备工作 1.新建一个控制台项目, 在"程序包管理控制台"执行 Install-package EntityFramework  //安装EF环境 2.在项目下新建类(Paper) ...

  3. python 输出当前行号

    import sys print sys._getframe().f_lineno ---------------------------------------------------------- ...

  4. 使用openssl模拟CA和CA证书的签发

    使用openssl模拟CA和CA证书的签发     当使用ssl/tls进行加密通信时,必须要有数字证书.若通信只限制在局域网内,可以不向第三方机构申请签发证书,可以通过openssl模拟CA(Cer ...

  5. 如何将mysql表结构导出成Excel格式的(并带备注)另附转为word表格的方法

    方法一: 1.使用一个MySQL管理工具:SQLyog,点击菜单栏“数据库”下拉的最后一项: 导出的格式如下: 2.要想转成Excel格式的只需手动将该表复制到Excel中去. 方法二: 1.以下用的 ...

  6. 我写的javascript常用静态方法类,分享给大家

    util=function(){    return {        $:function(id){            return document.getElementById(id);   ...

  7. FPGA中的时序分析(五)

    时序约束实例详解 本篇博客结合之前的内容,然后实打实的做一个约束实例,通过本实例读者应该会实用timequest去分析相关的实例.本实例以VGA实验为基础,介绍如何去做时序约束. 首先VGA这种情况属 ...

  8. webrtc 在MAC下和iOS下的编译

    一:安装brew和git 1. mkdir /usr/local 2. curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo ...

  9. 记一些常用到的python中的函数

    1. zip()函数 它的作用是从参数中按顺序一一抽出子参数组出一个新的tuple.  直接看例子: >>> mean = np.array([2, 5, 4]) >>& ...

  10. 【吉比特】G-bits2017技术类岗位编程题

    求素数 输入M.N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数.素数定义:除了1以外,只能被1和自己整除的自然数称为素数 输入描述: 两个整数M,N ...