Oracle行和

Oracle行和,oracle,Oracle,我的Oracle员工费用表如下所示。红色文本是我所期望的 我只需要得到这四个月的费用总额,按Emp_编号和年份排序 有什么想法吗?只要把它们加起来,并把它们包含在你的查询中 SELECT emp_no , year , january , february , march , april , (january + february + march + april) AS total FROM emp

我的Oracle员工费用表如下所示。红色文本是我所期望的

我只需要得到这四个月的费用总额,按Emp_编号和年份排序


有什么想法吗?

只要把它们加起来,并把它们包含在你的查询中

SELECT   emp_no
       , year
       , january
       , february
       , march
       , april
       , (january + february + march + april) AS total
FROM     employee_expense
ORDER BY emp_no, year

这应该可以做到,除非你还没有提到其他事情。

只要把它们加起来,并将其包含在你的查询中

SELECT   emp_no
       , year
       , january
       , february
       , march
       , april
       , (january + february + march + april) AS total
FROM     employee_expense
ORDER BY emp_no, year

这应该可以做到,除非您没有提到其他相关内容。

这是一个糟糕的设计,月份不应该是表中的列

对于需要从其他列生成列的场景,您可以向表中添加一个,即Total。这样,您就不必每次查询时都显式地编写添加内容,只需查询列,Oracle就会为您添加内容

ALTER TABLE employee_expense ADD (
     total GENERATED ALWAYS AS ( january + february + march + april )
);
只需运行此命令,即可获得Total的值

select * from employee_expense;

这是一个糟糕的设计,月份不应该是表的列

对于需要从其他列生成列的场景,您可以向表中添加一个,即Total。这样,您就不必每次查询时都显式地编写添加内容,只需查询列,Oracle就会为您添加内容

ALTER TABLE employee_expense ADD (
     total GENERATED ALWAYS AS ( january + february + march + april )
);
只需运行此命令,即可获得Total的值

select * from employee_expense;

很好的更新Kaushik-Nayak。我不知道虚拟专栏。干杯更新Kaushik-Nayak。我不知道虚拟专栏。干杯