SQL 通过查询得出每个ID对应的数值怎么一次性更新上去?

qq_30890773 2019-04-23 10:28:38


select a.CARD_NO,count(b.STOCK_QTY) as STOCK_QTY from MES_YX_RECEIPT_LIST a
inner join MES_YX_RL_STOCK b on a.RECEIPT_LIST_ID=b.RECEIPT_LIST_ID where isnull(CARD_NO,'')!=''
group by CARD_NO
这条语句查询出来的结果是每个ID对应一个数值

update MES_PP_PROC_CARD set NUM=?? where CARD_NO=??
select * from MES_YX_RL_STOCK
然后我想通过上面查询出来的结果,一次性的更新另一张表,而不是每次都是手动复制条件到CARD_NO中

存储过程怎么写?
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30890773 2019-04-23
  • 打赏
  • 举报
回复
结贴了,可以了,谢谢
二月十六 2019-04-23
  • 打赏
  • 举报
回复
引用 2 楼 qq_30890773 的回复:
update MES_PP_PROC_CARD set NUM=a.STOCK_QTY from (select a.CARD_NO,count(b.STOCK_QTY) as STOCK_QTY from MES_YX_RECEIPT_LIST a inner join MES_YX_RL_STOCK b on a.RECEIPT_LIST_ID=b.RECEIPT_LIST_ID where isnull(CARD_NO,'')!='' group by CARD_NO) a 这样写不知道可不可以?我不敢测试
做好数据备份
qq_30890773 2019-04-23
  • 打赏
  • 举报
回复

update MES_PP_PROC_CARD set NUM=a.STOCK_QTY from (select a.CARD_NO,count(b.STOCK_QTY) as STOCK_QTY from MES_YX_RECEIPT_LIST a
inner join MES_YX_RL_STOCK b on a.RECEIPT_LIST_ID=b.RECEIPT_LIST_ID where isnull(CARD_NO,'')!=''
group by CARD_NO) a
这样写不知道可不可以?我不敢测试
二月十六 2019-04-23
  • 打赏
  • 举报
回复
UPDATE MES_PP_PROC_CARD
SET NUM = t.一个值
FROM
(SELECT * FROM MES_YX_RL_STOCK) t
WHERE CARD_NO = t.关联值;

22,209

社区成员

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

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