满意答案

--给一个ap aging 的sql 供各位参考……,AP 应该与gl balance的余额有可能不会完全相同,因为可能有尾差产生

select e.segment4||e.segment5,a.description,

b.vendor_name||'('||b.segment1||')',a.doc_sequence_value,

a. invoice_num,

a.invoice_currency_code,

nvl(a.exchange_rate,1) exchange_rate,

a.invoice_type_lookup_code,

f.name,

to_char(a.terms_date,'DD-MON-YYYY') term_date,

to_char(c.due_date,'DD-MON-YYYY') due_date,

to_char(a.gl_date,'DD-MON-YYYY') acct_date,

to_char(a.gl_date,'mm') month,

to_number(to_char(a.gl_date,'YYYY')) year,

a.invoice_amount-sum(nvl(d.amount,0))-nvl(g.amt,0) amt_remaining_ori,

decode(a.base_amount,0,decode(a.invoice_type_lookup_code,'DEBIT',a.invoice_amount,a.base_amount),null,a.invoice_amount,a.base_amount)-sum(nvl(d.invoice_base_amount,nvl(d.amount,0)))-nvl(g.base_amt,0)+

sum(nvl(i.accounted_dr,0)-nvl(i.accounted_cr,0))+sum(-nvl(h.accounted_cr,0)) amt_remaining ,

decode(a.invoice_currency_code,'USD',round((a.invoice_amount-sum(nvl(d.amount,0))-nvl(g.amt,0))*:p_ex_rate,2)-

( decode(a.base_amount,0,decode(a.invoice_type_lookup_code,'DEBIT',a.invoice_amount,a.base_amount),null,a.invoice_amount,a.base_amount)-sum(nvl(d.invoice_base_amount,nvl(d.amount,0)))-nvl(g.base_amt,0)+

sum(nvl(i.accounted_dr,0)-nvl(i.accounted_cr,0))+sum(-nvl(h.accounted_cr,0))),0) add_value,

decode(a.invoice_currency_code,'USD',round((a.invoice_amount-sum(nvl(d.amount,0))-nvl(g.amt,0))*:p_ex_rate,2), decode(a.base_amount,0,decode(a.invoice_type_lookup_code,'DEBIT',a.invoice_amount,a.base_amount),null,a.invoice_amount,a.base_amount)-sum(nvl(d.invoice_base_amount,nvl(d.amount,0)))-nvl(g.base_amt,0)+

sum(nvl(i.accounted_dr,0)-nvl(i.accounted_cr,0))+sum(-nvl(h.accounted_cr,0))) add_value_whole,

c.due_date-:p_as_of_date due_days

from ap.ap_invoices_all a,

ap.ap_terms_tl f,

po.po_vendors b,

(select invoice_id, max(due_date) due_date from ap.ap_payment_schedules_all group by invoice_id) c,

ap.ap_ae_lines_all h,

ap.ap_ae_lines_all i,

ap.ap_invoice_payments_all d,

gl.gl_code_combinations e,

(select (0 - sum(nvl(amount,0))) amt,(0-sum(nvl(base_amount,nvl(amount,0)))) base_amt,invoice_id

from ap.ap_invoice_distributions_all

where

(line_type_lookup_code = 'PREPAY'

or line_type_lookup_code = 'TAX'

and prepay_tax_parent_id is not null)

and accounting_date<= :p_as_of_date

group by invoice_id) g

where a.org_id=:p_org_id

and a.vendor_id=b.vendor_id

and ap_fun_get_validation(a.invoice_id)='Y'

and c.invoice_id=a.invoice_id

and a.invoice_id=d.invoice_id(+)

and a.invoice_id=g.invoice_id(+)

and d.accounting_date(+)<= :p_as_of_date

and d.invoice_payment_id=h.source_id(+)

and h.ae_line_type_code(+)='WRITEOFF'

and i.source_table(+)='AP_INVOICE_PAYMENTS'

and d.invoice_payment_id=i.source_id(+)

and i.ae_line_type_code(+)= 'ROUNDING'

and a.gl_date<= :p_as_of_date

and e.code_combination_id=a.accts_pay_code_combination_id

and f.term_id=a.terms_id

group by a.invoice_id, a.description,b.vendor_name||'('||b.segment1||')',a.doc_sequence_value,a.invoice_num,a.invoice_currency_code,

a.invoice_amount,nvl(a.exchange_rate,1),

a.invoice_type_lookup_code,decode(a.base_amount,0,decode(a.invoice_type_lookup_code,'DEBIT',a.invoice_amount,a.base_amount),null,a.invoice_amount,a.base_amount),

c.due_date,a.gl_date,e.segment4||e.segment5, f.name, a.terms_date,nvl(g.amt,0),nvl(g.base_amt,0)

having decode(a.base_amount,0,decode(a.invoice_type_lookup_code,'DEBIT',a.invoice_amount,a.base_amount),null,a.invoice_amount,a.base_amount)-sum(nvl(d.invoice_base_amount,nvl(d.amount,0)))-nvl(g.base_amt,0)+sum(nvl(i.accounted_dr,0)-nvl(i.accounted_cr,0))+sum(-nvl(h.accounted_cr,0)) <>0

order by e.segment4||e.segment5,b.vendor_name||'('||b.segment1||')';

CREATE OR REPLACE FUNCTION Ap_Fun_Get_Validation(INV_ID Number) RETURN VARCHAR2 IS

cnt number;

cnt1 number;

cnt2 number;

BEGIN

select count(*)

into cnt

from ap.ap_invoices_all a,

ap.ap_invoice_distributions_all b

where a.invoice_id=inv_id

and a.invoice_id=b.invoice_id

and (b.match_status_flag in ('T','N') or b.match_status_flag is null);

if cnt>0 then

select count(*)

into cnt1

from ap.ap_holds_all c

where c.invoice_id=inv_id;

select count(*)

into cnt2

from ap.ap_holds_all d

where d.invoice_id=inv_id

and d.release_lookup_code='APPROVED';

if cnt1<>0 and cnt1=cnt2 then

cnt:=0; end if;

end if; 展开

00分享举报

ap计算机sql,如何用sql实现AP相关推荐

  1. ap计算机可以自学吧,如何自学AP课程?

    国际教育网讯:国际生在完成课业后参加AP考试,得到一定的成绩后可以获得大学学分.一般修一门大学的课程要花费数千美元,而参加AP考试只需要92美元,因此选修AP课程不仅可以展现学生的能力,它还是一种省钱 ...

  2. html表格颜色sql,如何用SQL语句操作Table

    下面是在ORACLE或SQLserver操作表的语法: 1.创建表 语法: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY KEY , ...

  3. mysql 主码和外码_sql如何用sql语句对一个已经编辑好的表在设置主码和外码?Atlassian Confluence安装以及咋更改数据库...

    在上一篇文章中,小编为您详细介绍了关于<如何更改CAD尺寸标注的单位?丽台Q600 优化驱动 装了这个卡>相关知识.本篇中小编将再为您讲解标题sql如何用sql语句对一个已经编辑好的表在设 ...

  4. 【无标题】AP计算机全方位解读

    内容导读 1 为什么要学习AP计算机科学? 2 学习AP计算机科学需要好的的数学基础吗? 3 AP计算机科学的学习内容 4 AP计算机科学如何考试? 5 学习规划及课程设置 6 AP计算机教材推荐 7 ...

  5. AP 计算机 从忐忑不安到轻松满分---多伦多学生如何从零腾飞!

    AP 计算机 真知源自实践,盛誉源自读者:孜孜不倦,止于至善   ---林振营老师编著的中国第一套 AP计算机教材学生评价            AP计算机    AP微积分    A Level计算 ...

  6. 深圳的中学计算机课学什么时候,AP 计算机 专业高效 深圳中学学生如何说

    我选修了学校的AP计算机课程,之前没有接触过JAVA代码编写的我第一周的课听得云里雾里,很多和我一起上课的同学都有较强的基础,看着他们轻松的样子,我压力非常大,学校CS课第一次小测之前,我找到了林老师 ...

  7. AP计算机 全方位解读

    内容导读 1 为什么要学习AP计算机科学?  2 学习AP计算机科学需要好的的数学基础吗?  3  AP计算机科学的学习内容4 4 AP计算机科学如何考试?  5  学习规划及课程设置  6  AP计 ...

  8. (转)MSSQL中如何用SQL清除所有表的数据(downmoon)?

    有朋友问起:MSSQL中如何用SQL清除所有表的数据?这个需求分三种类型: 第一:只要数据库中表是空的: 第二:表是空的,并且自增长列可以从1开始增长. 第三:表是空的,并且自增长列可以从1开始增长, ...

  9. SQL:如何用一个sql统计出全校男生个数、女生个数以及总人数

    SQL:如何用一个sql统计出全校男生个数.女生个数以及总人数 本文为转载: https://blog.csdn.net/wangjinsu7/article/details/52257150 情景: ...

最新文章

  1. 华为诺亚、北大提出GhostNet​,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020...
  2. 超分辨率:将背景和人脸分离 ,人脸、背景分别做增分后将人脸贴回背景图
  3. php文件上传代码_PHP实现文件分片上传的实例代码
  4. 软件设计师中级 百度知道_设计师应该知道什么
  5. OpenDiscussion_DataDrivenDesign
  6. poj 3310(并查集判环,图的连通性,树上最长直径路径标记)
  7. Top 10 Digital Transformation Trends For 2020
  8. 尝试登录 VMware vCenter Server 5.5 时,“别名”值为空如何解决
  9. VS2017离线下载 -- 如何让VS2017不占用C盘
  10. 计算机专业拼音怎样写,单板计算机拼音
  11. GitHub上万星:超精细的漫画上色AI,老婆画风任你选择,登上了趋势榜
  12. [UGUI源码剖析]—Rebuild 网格重建(画布刷新)系统
  13. OBS录屏低音过重/背景嗡嗡声的解决方法
  14. 【开发日记】马桶型号识别
  15. Redis——大Key问题
  16. GSI-PDP管网勘测综合数据处理软件操作手册
  17. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
  18. 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化
  19. 软测(五)Web自动化测试下
  20. 函数凹凸性与黑塞矩阵

热门文章

  1. 注册商标个人名义与公司名义如何选择?
  2. ASP.NET入门篇【项目实战】打造一个自己的相册(二)登录模块
  3. Python 爬取财务报表
  4. 2017计算机概念股,2017最新概念股有哪些? 2017最新概念股一览
  5. UltraEdit编辑器打开其他软件编辑文件时出现中文乱码的解决方法
  6. n76e003引脚图_老司机带你入门新塘N76E003单片机
  7. AMS1117-ADJ的使用
  8. 微信分享朋友圈的标题和图片
  9. vlc for android 不能全屏,或者画面不能铺满的问题。
  10. android仿墨迹天气预报,手机天气预报 墨迹天气安卓版使用教程