lujiandu 2024-03-21 08:17 采纳率: 50%
浏览 16
已结题

SQL server中如何当明细表有增改删变化时就向汇总表里不重复的汇总一次

img

img


当入库记录表有增改删时如何让他向汇总表里汇总一次,并且不重复只汇总有变化的数据,或者不重复汇总

  • 写回答

16条回答 默认 最新

  • Watch the clown 2024-03-21 09:51
    关注

    这种需求都是用触发器完成,这里的inserted 和 deleted 表是触发器被激活时创建的虚拟表。

    CREATE TRIGGER trg_Update ON [入库记录]
    AFTER INSERT, UPDATE, DELETE AS
    BEGIN
        IF EXISTS(SELECT * FROM inserted)
            BEGIN
                INSERT INTO [入库汇总$]([子类别], [类别], [入库存量], [金额], [最近入库日期])
                SELECT DISTINCT [子类别], [类别], SUM([入库存量]), SUM([金额]), MAX([入库日期])
                FROM [入库记录]
                GROUP BY [子类别], [类别];
            END
    
        IF EXISTS(SELECT * FROM deleted)
            BEGIN
                DELETE s
                FROM [入库汇总$] s
                LEFT JOIN [入库记录] r ON s.[子类别] = r.[子类别] AND s.[类别] = r.[类别]
                WHERE r.[子类别] IS NULL;
            END
    END;
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月22日
  • 赞助了问题酬金15元 3月21日
  • 创建了问题 3月21日