view \function\行转列的方法。
--------------CH集团帐龄报表 CH_ARAGINGNEW
#1
CREATE OR REPLACE VIEW AR_TEMP_V ( CUSTOMER_NUMBER,
CUSTOMER_NAME, CONTRACT_NUMBER, CATEGORY, REMARK_1,
REMARK_2, UPDATE_DATE, DEP_DATE, LAST_UPDATE_DATE,
AREA, AREA1, AREA2, HEADER_ID,
SALESPERSON, ORG_ID, PAYMENT_SCHEDULE_ID, DUE_DATE,
AMOUNT_DUE_ORIGINAL, AMOUNT_CREDITED, AMOUNT_DUE_REMAINING, STATUS,
INVOICE_CURRENCY_CODE, CLASS, GL_DATE, ARAA_APPLID_AMT
) AS select
rc.customer_number,
rc.customer_name,
--rcta.ATTRIBUTE2 contract_no,
sha.ATTRIBUTE2 contract_number,
--rcta.TRX_NUMBER,
rcta.ATTRIBUTE13 category,
rcta.ATTRIBUTE12 remark_1,
rcta.ATTRIBUTE11 remark_2,
rcta.ATTRIBUTE10 update_date,
dep.dep_date,
--ARPT_SQL_FUNC_UTIL.GET_FIRST_REAL_DUE_DATE(rcta.CUSTOMER_TRX_ID, rcta.TERM_ID, rcta.TRX_DATE) term_due_date,
--rcta.TRX_DATE
rt.LAST_UPDATE_DATE,
raa.attribute2 area,
raa.attribute4 area1,
raa.attribute5 area2,
sha.header_id,
rsa.NAME salesperson,
apsa.org_id,
apsa.PAYMENT_SCHEDULE_ID,
apsa.DUE_DATE,
apsa.AMOUNT_DUE_ORIGINAL+nvl(apsa.AMOUNT_CREDITED,0) AMOUNT_DUE_ORIGINAL,
nvl(apsa.AMOUNT_CREDITED,0) AMOUNT_CREDITED,
apsa.AMOUNT_DUE_REMAINING,
apsa.STATUS,
apsa.INVOICE_CURRENCY_CODE,
apsa.CLASS,
apsa.gl_date,
nvl(app.araa_applid_amt,0) araa_applid_amt
from
ar.ar_payment_schedules_all apsa,
ar.ra_customers rc,
ar.ra_customer_trx_all rcta,
oe.so_headers_all sha,
ar.RA_ADDRESSES_ALL raa,
ar.ra_site_uses_all rsua,
(select sha1.ATTRIBUTE2 attr2,max(rt1.LAST_UPDATE_DATE) LAST_UPDATE_DATE
from ar.ra_terms rt1,oe.so_headers_all sha1
where sha1.terms_id=rt1.term_id(+)
group by sha1.ATTRIBUTE2) rt,
ar.ra_salesreps_all rsa,
(select
sum(decode(araa.APPLICATION_TYPE,'CASH',araa.AMOUNT_APPLIED,decode(araa.CUSTOMER_TRX_ID,null,araa.AMOUNT_APPLIED,0))) araa_applid_amt,
araa.APPLIED_PAYMENT_SCHEDULE_ID,
ARAA.ORG_ID araa_org_id
from
ar.ar_receivable_applications_all araa
where
araa.DISPLAY='Y'
AND araa.STATUS='APP'
and araa.gl_DATE<=nvl(sysdate,sysdate)+1
group by araa.APPLIED_PAYMENT_SCHEDULE_ID,ARAA.ORG_ID ) app,
(select
org_id,
header_id,
max(ACTUAL_DEPARTURE_DATE) dep_date
from
apps.ch_oracleso_serial_v
group by org_id,header_id) dep
where
apsa.customer_id=rc.customer_id and
apsa.org_id=rcta.org_id and
apsa.customer_trx_id=rcta.customer_trx_id and
rcta.org_id=sha.org_id(+) and
rcta.interface_header_attribute1=to_char(sha.order_number(+)) and
sha.org_id=raa.org_id(+) and
sha.customer_id=raa.customer_id(+) and
sha.org_id=rsua.org_id(+) and
sha.INVOICE_TO_SITE_USE_ID=rsua.SITE_USE_ID(+) and
sha.ATTRIBUTE2=rt.ATTR2(+) and
nvl(rsua.ADDRESS_ID,-1)=nvl(raa.ADDRESS_ID,-1) and
rsua.SITE_USE_CODE(+)='BILL_TO' and
sha.org_id=rsa.org_id(+) and
sha.salesrep_id=rsa.salesrep_id(+) and
apsa.PAYMENT_SCHEDULE_ID=app.APPLIED_PAYMENT_SCHEDULE_ID(+) and
apsa.org_id=app.araa_org_id(+) and
apsa.AMOUNT_DUE_ORIGINAL>0 and
apsa.AMOUNT_DUE_ORIGINAL+nvl(apsa.AMOUNT_CREDITED,0) <>0 and
apsa.gl_date<=nvl(sysdate,sysdate)+1 and
sha.org_id=dep.org_id and
sha.header_id=dep.header_id
---------------
#2
CREATE OR REPLACE FUNCTION ar_temp_f(
P_org_id in number,
P_contract in varchar2
)
return number IS
V_amount number DEFAULT NULL;
BEGIN
select
sum(round((((nvl(sla.ordered_quantity,0)-nvl(sla.cancelled_quantity,0))
*nvl(sla.selling_price,0))*(1+nvl(decode(avta.AMOUNT_INCLUDES_TAX_FLAG,'Y',0,avta.tax_rate),0)/100)),2))
into v_amount
from oe.so_headers_all sha,oe.so_lines_all sla,
ar.ar_vat_tax_all avta
where sha.header_id=sla.header_id
and sla.ORDERED_QUANTITY-nvl(sla.CANCELLED_QUANTITY,0)>0
and sla.org_id=avta.org_id(+)
and sla.tax_code=avta.tax_code(+)
and sha.org_id=P_ORG_ID
and sha.ORDER_CATEGORY='R'
and nvl(avta.END_DATE,sysdate+1)>sysdate
and not exists
(select 'x' from oe.so_headers_all sha1,oe.so_lines_all sla1
where sha1.header_id=sla1.header_id
and sha1.org_id=sla1.org_id
and sla1.ORDERED_QUANTITY-nvl(sla1.CANCELLED_QUANTITY,0)>0
and sha1.ORDER_CATEGORY='RMA'
and sla1.org_id=sha.org_id
and sla1.RETURN_REFERENCE_ID=sla.line_id)
and sha.attribute2=p_contract
group by sha.attribute2;
return(V_amount);
exception
when others then
RETURN(NULL);
end ar_temp_f;
/
------------------------------------------
#3
select contract_number,
remark_1,
update_date,
dep_date,
category,
remark_2,
min(due_date),
area,
area2,
salesperson,
customer_number,
customer_name,
ar_temp_f(org_id,contract_number) contract_amount,
sum(decode(sign(0-(trunc(sysdate)-trunc(due_date))),1 ,amount_due_original-nvl(araa_applid_amt,0),null)) 小于0天,
sum(decode(sign(1-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(30-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于31天,
sum(decode(sign(31-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(60-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于61天,
sum(decode(sign(61-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(90-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于91天,
sum(decode(sign(91-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(180-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于181天,
sum(decode(sign(181-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(270-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于271天,
sum(decode(sign(271-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(365-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于366天,
sum(decode(sign(366-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(547-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于1年半,
sum(decode(sign(548-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(730-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于2年,
sum(decode(sign(731-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(1095-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于3年,
sum(decode(sign(1096-(trunc(sysdate)-trunc(due_date))),-1 ,amount_due_original-nvl(araa_applid_amt,0),null)) 大于3年
from ar_temp_v
where org_id=439 and contract_number='CH2008/0854' --and amount_due_original>nvl(araa_applid_amt,0)
group by
contract_number,
remark_1,
update_date,
dep_date,
category,
remark_2,
area,
area2,
salesperson,
customer_number,
customer_name,
ar_temp_f(org_id,contract_number)
---------------------------------------
#
select contract_number 合同号,
remark_1 合同条款,
update_date 更新日期,
dep_date 出机日期,
category 分类状态,
remark_2 逾期原因,
min(due_date) 到款日期,
area 区域,
area2 办事处,
salesperson 销售员,
customer_number 客户编号,
customer_name 客户名称,
ar_temp_f(org_id,contract_number) 合同金额,
(nvl(sum(decode(sign(0-(trunc(sysdate)-trunc(due_date))),1 ,amount_due_original-nvl(araa_applid_amt,0),null)),0) +
nvl(sum(decode(sign(1-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(30-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(31-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(60-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(61-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(90-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(91-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(180-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(181-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(270-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(271-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(365-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(366-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(547-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(548-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(730-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(731-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(1095-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(1096-(trunc(sysdate)-trunc(due_date))),-1 ,amount_due_original-nvl(araa_applid_amt,0),null)),0)
) 至今尚欠金额
sum(decode(sign(0-(trunc(sysdate)-trunc(due_date))),1 ,amount_due_original-nvl(araa_applid_amt,0),null)) 未逾期金额,
(
nvl(sum(decode(sign(1-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(30-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(31-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(60-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(61-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(90-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(91-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(180-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(181-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(270-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(271-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(365-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0)+
nvl(sum(decode(sign(366-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(547-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(548-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(730-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(731-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(1095-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))),0) +
nvl(sum(decode(sign(1096-(trunc(sysdate)-trunc(due_date))),-1 ,amount_due_original-nvl(araa_applid_amt,0),null)),0)
) 逾期金额
sum(decode(sign(1-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(30-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于31天,
sum(decode(sign(31-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(60-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于61天,
sum(decode(sign(61-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(90-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于91天,
sum(decode(sign(91-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(180-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于181天,
sum(decode(sign(181-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(270-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于271天,
sum(decode(sign(271-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(365-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于366天,
sum(decode(sign(366-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(547-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于1年半,
sum(decode(sign(548-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(730-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于2年,
sum(decode(sign(731-(trunc(sysdate)-trunc(due_date))),1,null,decode(sign(1095-(trunc(sysdate)-trunc(due_date))),1,amount_due_original-nvl(araa_applid_amt,0),null))) as 小于3年,
sum(decode(sign(1096-(trunc(sysdate)-trunc(due_date))),-1 ,amount_due_original-nvl(araa_applid_amt,0),null)) 大于3年
from ar_temp_v
where org_id=439 --and contract_number='CH2008/0854' --and amount_due_original>nvl(araa_applid_amt,0)
group by
contract_number,
remark_1,
update_date,
dep_date,
category,
remark_2,
area,
area2,
salesperson,
customer_number,
customer_name,
ar_temp_f(org_id,contract_number)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12122734/viewspace-481893/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12122734/viewspace-481893/
view \function\行转列的方法。相关推荐
- pandas 选取第一行_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- excel根据条件列转行_“Excel怎样将列转为行 Excel列转行方法“excel有条件转置
EXCEL中如何将大量竖列数据一次性转为横行.如图. 很简单就可实现,用QQ说吧..87017761打字很麻烦.. Excel怎样将列转为行 Excel列转行方法 目标:将一列数转数据,比如将A列数据 ...
- SAP:FMALV转OOALV函数及多行多列实现方法
ALV多选行.多选列的实现方法: 一.展示方式: 1.function-ALV: 首先在ALV要显示数据的内表里,添加一个字段(假设字段名是:SEL),然后设置layout的属性box_fieldna ...
- C# DataTable 行转列通用方法
废话不多说,直接上代码,别问我代码是谁,为什么要上它?(注意,转发或者引用我的代码的,请标明出处连接,否则菊花难保!) 下面举两个列子的数据,如下代码所示 DataTable CreateDt1() ...
- MySQL 行转列的方法
建表 CREATE TABLE `score` (`Id` int(11) NOT NULL AUTO_INCREMENT,`UserName` varchar(50) DEFAULT NULL,`S ...
- oracle行转列处理方法,oracle行转列解决办法
oracle行转列 Cust prod 1 A 1 B 1 C 2 A 2 B Return Cust Prod1 Prod ...
- 实现获取鼠标在QtableView上的几行几列的方法
1 在Qt 设计师中右键QTableView槽函数,选中entered. 2 在构造函数中写上 ui->tableView->setMouseTracking(true);这样就可以获得Q ...
- VBA中用range来循环行、列的方法
range 的用法 1. Range("A1:B10") 这个用于选则一片区域,当行为变量时可以用 range("A" & i & " ...
最新文章
- 新建ROS工作工作空间
- 脉讯发布“社群搜索工具” 助企业精准洞察消费者需求
- idea控制台输出乱码
- 印度市场,圆不了二线国产手机的美梦
- Python小白的数学建模课-B3. 新冠疫情 SIS模型
- 用计算路由的方法优化BI后台性能
- Linux sudo 被曝提权漏洞,任意用户均能以 root 身份运行命令
- 收藏!本、硕、博、程序员必备神器
- 陈希孺《概率论与数理统计》读书笔记
- [逆向]汇编movs,stos,rep指令讲解
- ChemDraw怎样输入大括符?
- Ubuntu上安装QQ,无法显示图片和头像
- 2017.03.24回顾 归一化 标准化 R2 date_format 共线性 系数检验 决策树
- 计算机清理方法,电脑清理方法 电脑要如何清理
- 洛谷题解——P1873:砍树
- h5新API=>IntersectionObserver
- 浅谈信息安全的职业发展方向规划(乙方安全公司篇)
- prusai3打印机使用教程_打印虎原创RepRapPrusai33D打印机校准图解教程系列之二.pdf...
- 1000个微信小程序源码分享
- Spring Cloud-Alibaba
热门文章
- C# break和continue用法
- 关于对接海康设备的坑
- 简单的类实现接口的方法
- html keyframes无效,CSS Module解决全局或本地使用@keyframes无效问题
- indexedDB(三)查询(详细)篇
- Hive 3.1.2Linux CentOs 安装,踩坑 Dbeaver 连接Hive
- 区域卫生平台用户分析
- scp拷贝文件报错-bash: scp: command not found
- UltraEdit 15.10注册码
- 在查找预编译头时遇到意外的文件结尾 是否忘记了向源中添加 include StdAfx h