这个触发器该如何实现??

cong323 2004-05-04 01:40:57
表A中有字段 user,num,NO,invest
表B中有字段 num,NO
表C中有字段 NO,rate
表D中有字段 user,all
现要求当B中插入数据时,判断是否与A中的num,NO相同,如果相同就根据C中的NO把对应的rate*invest的结果放到D中的对应user的all中,这个触发器该如何写呢?请高手指点指点。
...全文
38 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2004-05-04
  • 打赏
  • 举报
回复
something like

CREATE TRIGGER B_insert
ON B
FOR INSERT
AS
INSERT INTO D ([user],[all])
SELECT A.[user],SUM(A.invest * C.rate) FROM A INNER JOIN C ON C.NO = A.NO
INNER JOIN inserted i ON i.num = A.num AND i.NO = A.NO
GROUP BY [user]
cong323 2004-05-04
  • 打赏
  • 举报
回复
最后我要把结果放到D中的作为一条新的记录?
cong323 2004-05-04
  • 打赏
  • 举报
回复
谢谢!!
saucer 2004-05-04
  • 打赏
  • 举报
回复
something like


CREATE TRIGGER B_insert
ON B
FOR INSERT
AS
UPDATE D SET [all] =
(
SELECT SUM(A.invest * C.rate) FROM A INNER JOIN C ON C.NO = A.NO
WHERE A.[user] = d1.[user]
)
FROM D d1 INNER JOIN A ON A.[user] = d1.[user]
INNER JOIN inserted i ON i.num = A.num AND i.NO = A.NO
cong323 2004-05-04
  • 打赏
  • 举报
回复
如果A中一个user有多个NO,invest,最后在D中的all是前面几个NO的rate*invest的和呢?
saucer 2004-05-04
  • 打赏
  • 举报
回复
something like


CREATE TRIGGER B_insert
ON B
FOR INSERT
AS
UPDATE D SET [all] = A.invest * C.rate FROM D
INNER JOIN A ON A.[user] = D.[user]
INNER JOIN C ON C.NO = A.NO
INNER JOIN inserted i ON i.num = A.num AND i.NO = A.NO

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧