问题描述
嗨,汤姆,
我需要传递一个gl period_name例如:-('jan-17') 到查询,并得到每个帐户的借方和贷方命中的总和。
但是这里的一个问题是,我还需要显示没有数据的任何日期的输出。
如果任何日期不包含任何数据,则借方和贷方的总和应为零。
例如;-
我做了一个查询
选择GCC.SEGMENT5帐户
,GJL。有效日期
,总和 (GJL.ACCOUNTED_DR) 借方
,总和 (GJL.ACCOUNTED_CR) 贷方
来自GL.GL_JE_HEADERS GJH
,GL.GL_JE_LINES GJL
,GL.Gl_code_组合GCC
其中GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
和GJL。代码 _ 组合 _ id = GCC。代码 _ 组合 _ id
和GJH.PERIOD_NAME = 'jan-17'
和GJH.STATUS = 'P'
GCC分组。细分5
,GJL。有效日期
由GJL订购。有效日期,GCC。细分5;
但是,这将仅获取可用有效日期的数据。如果日期没有余额,则必须将总和显示为零。
请帮帮我!
我需要传递一个gl period_name例如:-('jan-17') 到查询,并得到每个帐户的借方和贷方命中的总和。
但是这里的一个问题是,我还需要显示没有数据的任何日期的输出。
如果任何日期不包含任何数据,则借方和贷方的总和应为零。
例如;-
我做了一个查询
选择GCC.SEGMENT5帐户
,GJL。有效日期
,总和 (GJL.ACCOUNTED_DR) 借方
,总和 (GJL.ACCOUNTED_CR) 贷方
来自GL.GL_JE_HEADERS GJH
,GL.GL_JE_LINES GJL
,GL.Gl_code_组合GCC
其中GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
和GJL。代码 _ 组合 _ id = GCC。代码 _ 组合 _ id
和GJH.PERIOD_NAME = 'jan-17'
和GJH.STATUS = 'P'
GCC分组。细分5
,GJL。有效日期
由GJL订购。有效日期,GCC。细分5;
但是,这将仅获取可用有效日期的数据。如果日期没有余额,则必须将总和显示为零。
请帮帮我!
专家解答
所以你有一个查询,只返回几个日期从你的时期,但你需要显示所有的?
在这种情况下,您需要一个包含您需要查看的所有日期的数据源。所以你的过程
-创建一个包含您的时期内所有日期的表格
-离开加入你的查询到这个日期
-Nvl/当您的查询不返回行时,合并总和以显示零
在下面的示例中,sales表仅包含1月中某些天的行。所以我已经动态生成了一个日期表。然后左加入了它。如果需要,您可以将其替换为真实的日期表 (如果出于任何原因需要排除非工作或其他日子,则很有用):
在这种情况下,您需要一个包含您需要查看的所有日期的数据源。所以你的过程
-创建一个包含您的时期内所有日期的表格
-离开加入你的查询到这个日期
-Nvl/当您的查询不返回行时,合并总和以显示零
在下面的示例中,sales表仅包含1月中某些天的行。所以我已经动态生成了一个日期表。然后左加入了它。如果需要,您可以将其替换为真实的日期表 (如果出于任何原因需要排除非工作或其他日子,则很有用):
select time_id, sum(nvl(amount_sold, 0)) from SH.SALES s where trunc(time_id, 'mm') = date'1998-01-01' group by time_id order by time_id; TIME_ID SUM(NVL(AMOUNT_SOLD,0)) 02-JAN-1998 00:00:00 798 03-JAN-1998 00:00:00 1,264 05-JAN-1998 00:00:00 306 06-JAN-1998 00:00:00 378 09-JAN-1998 00:00:00 5,100 10-JAN-1998 00:00:00 1,580 12-JAN-1998 00:00:00 1,092 14-JAN-1998 00:00:00 1,746 16-JAN-1998 00:00:00 308 20-JAN-1998 00:00:00 742 23-JAN-1998 00:00:00 312 28-JAN-1998 00:00:00 4,680 29-JAN-1998 00:00:00 546 with dates as ( select date'1997-12-31'+level dt from dual connect by level <= 31 ) select dt, sum(nvl(amount_sold, 0)) from dates d left join SH.SALES s on d.dt = s.time_id and trunc(time_id, 'mm') = date'1998-01-01' group by dt order by dt; DT SUM(NVL(AMOUNT_SOLD,0)) 01-JAN-1998 00:00:00 0 02-JAN-1998 00:00:00 798 03-JAN-1998 00:00:00 1,264 04-JAN-1998 00:00:00 0 05-JAN-1998 00:00:00 306 06-JAN-1998 00:00:00 378 07-JAN-1998 00:00:00 0 08-JAN-1998 00:00:00 0 09-JAN-1998 00:00:00 5,100 10-JAN-1998 00:00:00 1,580 11-JAN-1998 00:00:00 0 12-JAN-1998 00:00:00 1,092 13-JAN-1998 00:00:00 0 14-JAN-1998 00:00:00 1,746 15-JAN-1998 00:00:00 0 16-JAN-1998 00:00:00 308 17-JAN-1998 00:00:00 0 18-JAN-1998 00:00:00 0 19-JAN-1998 00:00:00 0 20-JAN-1998 00:00:00 742 21-JAN-1998 00:00:00 0 22-JAN-1998 00:00:00 0 23-JAN-1998 00:00:00 312 24-JAN-1998 00:00:00 0 25-JAN-1998 00:00:00 0 26-JAN-1998 00:00:00 0 27-JAN-1998 00:00:00 0 28-JAN-1998 00:00:00 4,680 29-JAN-1998 00:00:00 546 30-JAN-1998 00:00:00 0 31-JAN-1998 00:00:00 0复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
522次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
499次阅读
2025-04-15 17:24:06
墨天轮个人数说知识点合集
JiekeXu
410次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
407次阅读
2025-04-08 09:12:48
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
391次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
389次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
350次阅读
2025-04-08 23:57:08
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
343次阅读
2025-04-20 10:07:02
oracle定时任务常用攻略
virvle
320次阅读
2025-03-25 16:05:19
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
318次阅读
2025-04-15 14:48:05