Эта запись предназначается больше мне самой - чтобы не забыть. Но, может, кому-то еще пригодится.
Исходные данные: есть справочник категорий продуктов.
Задача: Создать в разделе продаж деталь, на которой будут отображаться все категории продуктов с параметром "сумма" - общая сумма заказа по этой категории.
Решение:
Создать триггер на добавление записи в таблицу продаж:
CREATE TRIGGER [dbo].[tr_tbl_Opportunity_Create]
ON [dbo].[tbl_Opportunity]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE mycursor cursor LOCAL FOR SELECT ID FROM tbl_Prod_Cat;
DECLARE @testId uniqueidentifier;
DECLARE @id uniqueidentifier;
open mycursor
fetch next FROM mycursor INTO @testId
while @@fetch_status = 0
begin
INSERT INTO [tbl_ProdGroups2](
[CreatedByID],
[CreatedOn],
[ModifiedByID],
[ModifiedOn],
[AccountID],
[CatNameID],
[Sum]
)
SELECT
[D].[CreatedByID] AS [CreatedByID]
,getdate() AS [CreatedOn]
,[D].[ModifiedByID] AS [ModifiedByID]
,[D].[ModifiedOn] AS [ModifiedOn]
,[D].[ID] AS [OpportunityID]
,@testId AS [CatNameID]
,0 AS [Sum]
FROM [INSERTED] AS [D]
fetch next FROM mycursor INTO @testId
end
close mycursor;
deallocate mycursor
END
GO
ON [dbo].[tbl_Opportunity]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE mycursor cursor LOCAL FOR SELECT ID FROM tbl_Prod_Cat;
DECLARE @testId uniqueidentifier;
DECLARE @id uniqueidentifier;
open mycursor
fetch next FROM mycursor INTO @testId
while @@fetch_status = 0
begin
INSERT INTO [tbl_ProdGroups2](
[CreatedByID],
[CreatedOn],
[ModifiedByID],
[ModifiedOn],
[AccountID],
[CatNameID],
[Sum]
)
SELECT
[D].[CreatedByID] AS [CreatedByID]
,getdate() AS [CreatedOn]
,[D].[ModifiedByID] AS [ModifiedByID]
,[D].[ModifiedOn] AS [ModifiedOn]
,[D].[ID] AS [OpportunityID]
,@testId AS [CatNameID]
,0 AS [Sum]
FROM [INSERTED] AS [D]
fetch next FROM mycursor INTO @testId
end
close mycursor;
deallocate mycursor
END
GO
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать