问题描述
我有一个关于视图创建的问题。
这是我的问题:
我需要使用一个视图生成一个报告,该视图从两个表中获取数据,例如Table_A和Table_B。
表 _a中的示例数据:
注意: Element_name应该动态传递 (我有大约50个element_names)
表 _b中的示例数据:
现在,我的预期结果是
输出:
注1:
我通过传递季度报告或月度报告等参数来生成报告。
假设在这里,我需要一份3个月详细信息的报告,然后我需要将一名员工的基本工资相加。,20k,这是60000的产出。同样,医疗账单也是如此。
请帮助我。
非常感谢!
这是我的问题:
我需要使用一个视图生成一个报告,该视图从两个表中获取数据,例如Table_A和Table_B。
表 _a中的示例数据:
empno empname elem_name --------------------------------------- 1 abc Basic_Salary 1 abc Medical_Bill 2 xyz Basic_Salary 2 xyz Medical_Bill
注意: Element_name应该动态传递 (我有大约50个element_names)
表 _b中的示例数据:
Empno Basic_Salary Medical_Bill -------------------------------- 1 20000 500 2 50000 500
现在,我的预期结果是
输出:
Empno Empname effective_date Basic_Salary Medical_bill Total_sum -------------------------------------------------------------------------- 1 abc 13-jun-2016 60000 1500 61500 2 xyz 5-may-2017 150000 1500 151500
注1:
我通过传递季度报告或月度报告等参数来生成报告。
假设在这里,我需要一份3个月详细信息的报告,然后我需要将一名员工的基本工资相加。,20k,这是60000的产出。同样,医疗账单也是如此。
请帮助我。
非常感谢!
专家解答
我不明白table_a是怎么进来的?或者你从哪里得到有效日期?
如果要将table_b中的值累加N次,请交叉联接到N行表中。然后按员工id或其他方式分组,并汇总值:
或者你可以将一切乘以N:
但不知何故,我怀疑这两个都不是你真正想要的...
如果是这样,请给我们更多的合作。即:
-创建表格
-数据形式为 “插入表...”
-完整描述您要执行的操作。你在传递什么价值观?怎么做?根据您给出的数据,这些值的结果应该是什么?如果你传递不同的值会发生什么?
如果要将table_b中的值累加N次,请交叉联接到N行表中。然后按员工id或其他方式分组,并汇总值:
with emps as ( select 1 id, 20000 sal, 500 med from dual union all select 2 id, 50000 sal, 500 med from dual ), rws as ( select level rw from dual connect by level <= 3 ) select id, sum(sal), sum(med), sum(sal+med) from emps cross join rws group by id; ID SUM(SAL) SUM(MED) SUM(SAL+MED) 1 60000 1500 61500 2 150000 1500 151500
或者你可以将一切乘以N:
with emps as ( select 1 id, 20000 sal, 500 med from dual union all select 2 id, 50000 sal, 500 med from dual ) select id, sal*3, med*3, (sal+med)*3 from emps; ID SAL*3 MED*3 (SAL+MED)*3 1 60000 1500 61500 2 150000 1500 151500
但不知何故,我怀疑这两个都不是你真正想要的...
如果是这样,请给我们更多的合作。即:
-创建表格
-数据形式为 “插入表...”
-完整描述您要执行的操作。你在传递什么价值观?怎么做?根据您给出的数据,这些值的结果应该是什么?如果你传递不同的值会发生什么?
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




