在同一 Table 上插入后触发对多行求和
Trigger to Sum Multiple Rows After Insert on same Table
我在 Oracle 上有一个 table 数据库。
我的问题如下:
- 我想创建一个触发器来对 table 中的一些值求和并将总值放在不同的字段中。
比如我的table,(RKAP_RENCANA)
有13列。
ID DETAIL JAN FEB MAR APR MAY JUNE TOTAL
------------------------------------------------
1 TEXT 10 10 10 10 10 10 60
2 TEXT 20 40 10 10 20 10 110
所以最后我想对值 (JAN - JUNE) values in RKAP_RENCANA
求和并将总值放在 TOTAL Field
到目前为止,我尝试了几种方法,但似乎都没有用。
CREATE TRIGGER dbo.TEST_TOTAL
ON dbo.RKAP_RENCANA
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE M
SET TOTAL = T.JAN + T.FEB + T.MARCH + T.APR + T.MAY + T.JUNE
FROM dbo.RKAP_RENCANA AS M
INNER JOIN inserted AS T
ON M.ID = T.ID;
END
GO
还有其他方法可以解决我的问题吗?
谢谢。
在 Oracle 11g 及更高版本中,您可以改用生成的列:
alter table RKAP_RENCANA add total number
generated always as (JAN + FEB + MAR + APR + MAY + JUN)
我在 Oracle 上有一个 table 数据库。
我的问题如下:
- 我想创建一个触发器来对 table 中的一些值求和并将总值放在不同的字段中。
比如我的table,(RKAP_RENCANA)
有13列。
ID DETAIL JAN FEB MAR APR MAY JUNE TOTAL
------------------------------------------------
1 TEXT 10 10 10 10 10 10 60
2 TEXT 20 40 10 10 20 10 110
所以最后我想对值 (JAN - JUNE) values in RKAP_RENCANA
求和并将总值放在 TOTAL Field
到目前为止,我尝试了几种方法,但似乎都没有用。
CREATE TRIGGER dbo.TEST_TOTAL
ON dbo.RKAP_RENCANA
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE M
SET TOTAL = T.JAN + T.FEB + T.MARCH + T.APR + T.MAY + T.JUNE
FROM dbo.RKAP_RENCANA AS M
INNER JOIN inserted AS T
ON M.ID = T.ID;
END
GO
还有其他方法可以解决我的问题吗?
谢谢。
在 Oracle 11g 及更高版本中,您可以改用生成的列:
alter table RKAP_RENCANA add total number
generated always as (JAN + FEB + MAR + APR + MAY + JUN)