SQL GROUP BY插入不起作用-子查询返回了多个值

问题描述 投票:0回答:1

我在批准可触发查找并将数据添加到新表的项目后获得了触发器。我现在收到“子查询返回的值多于1”

我还阅读了其他答复,但没有广泛地解决该问题。.因此我目前没有答案。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[trg_BID_APROVAL] 
ON [dbo].[BID]
AFTER UPDATE
AS
BEGIN
    IF (SELECT BID_APPROVED FROM INSERTED) = 0 --if NO then do nothing else create and send purchase order
    BEGIN
        RETURN
    END
    ELSE

    DECLARE @BIDDY_ID INT;
    SELECT @BIDDY_ID = BID_ID FROM INSERTED;

    DECLARE @SUPPY_ID TABLE(SUP_ID INT,BID_ID INT,PO_DATE DATE DEFAULT GETDATE());
    INSERT INTO @SUPPY_ID(SUP_ID, BID_ID)
        SELECT 
            SUP_ID,
            BID_ID
        FROM
            BIDLINE BL
        INNER JOIN 
            PRODUCTS P ON BL.PROD_ID = P.PROD_ID
        WHERE 
            BID_ID = @BIDDY_ID AND SUP_ID > 0
        GROUP BY 
            SUP_ID,BID_ID;

    INSERT INTO PURCHASE_ORDER (BID_ID, SUP_ID, PO_DATE)
        SELECT BID_ID, SUP_ID, PO_DATE 
        FROM @SUPPY_ID
END
sql triggers sql-insert correlated-subquery
1个回答
0
投票

实际上问题是在if条件下,我们可以像这样更改条件

© www.soinside.com 2019 - 2024. All rights reserved.