【问题标题】:Trigger to insert into a table a "SELECT SUM" from another table触发器将另一个表中的“SELECT SUM”插入到表中
【发布时间】:2017-07-01 20:53:35
【问题描述】:

我有这两张桌子:

AUX 表中的数据有重复的日期,而表 a 中的数据必须没有重复的日期,但要加上重复日期的总和。

ej。 2017 年 5 月 1 日 = 123 + 123 + 123。

我认为当 aux 表中的数据有新数据时,触发器应该完成这项工作。

【问题讨论】:

  • 提示:GROUP BY.

标签: sql sql-server-2005 triggers


【解决方案1】:
CREATE TRIGGER [dbo].[trgAfterInsert] ON [dbo].[Table_a_aux] 
After Insert
AS
BEGIN

Declare @dDate as Date;
Declare @iTotal as int;

Select 
    @dDate = i.[date],
    @iTotal = i.total
From inserted i;


IF EXISTS (Select [date] from Table_a where [date] = @dDate) 
BEGIN
Update Table_a 
    SET total = total + @iTotal
WHERE
    [date] = @dDate
END
ELSE 
BEGIN
INSERT INTO Table_a ([date],total) Values (@dDate,@iTotal)
END

【讨论】:

  • 谢谢,但我已经这样做了,但如果我想从 Table_a_aux 编辑总数,你必须编辑 2、3 或 n 个重复的日期。
  • 表中的任何更改都会根据分组更改视图中的数据
  • 一切顺利:)
  • 是的,当然可以,但是我希望将视图中的数据复制到一个表中,因为table_a_aux 仅供参考,table_a 中的数据是官方数据。如果 table_a_aux 中的数据更改,例如 10 个重复日期,我必须更改这 10 个日期,但在 Table_a 中只有一个。
  • 嗨@gokufast 我已根据您的要求更新了我的答案。如有任何澄清,请告知我们。
猜你喜欢
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
相关资源
最近更新 更多