SQL表内存在就更新不存在就插入

chaxxcha 2016-10-04 11:58:22
入库单表


SELECT [jhyj_cgjh_jhd_id] 进货单号
,[jhyj_cgjh_jhd_mx_bh] 商品编号
,[jhyj_cgjh_jhd_mx_pm] 商品名称
,[jhyj_cgjh_jhd_mx_dd] 单位
,[jhyj_cgjh_jhd_mx_ggxh] 规格型号
,[jhyj_cgjh_jhd_mx_yy] 颜色
,[jhyj_cgjh_jhd_mx_sl] 数量
,[jhyj_cgjh_jhd_mx_amo] 金额
,[jhyj_cgjh_jhd_ck] 仓库
FROM [jhyj].[dbo].[入库单汇总]

库存表

SELECT [jhyj_kc_bh] 商品编号
,[jhyj_kc_pm] 商品名称
,[jhyj_kc_dd] 单位
,[jhyj_kc_ggxh] 规格型号
,[jhyj_kc_yy] 颜色
,[jhyj_kc_sl] 数量
,[jhyj_kc_amo] 金额
, jhyj_kc_ck 仓库
FROM [jhyj].[dbo].[jhyj_kc]


入库单表新增到库存


需要的是入库单到库存有的就更新数量和金额(原来的加上现在的) 没有的新增

字段 [jhyj_cgjh_jhd_mx_bh] 商品编号
[jhyj_cgjh_jhd_mx_pm] 商品名称
[jhyj_cgjh_jhd_mx_dd] 单位
[jhyj_cgjh_jhd_mx_ggxh] 规格型号
,[jhyj_cgjh_jhd_mx_yy] 颜色
,[jhyj_cgjh_jhd_mx_sl] 数量
,[jhyj_cgjh_jhd_mx_amo] 金额
,[jhyj_cgjh_jhd_ck] 仓库

条件是 商品编号 和 仓库 一样的就更新 不一样的新增
...全文
988 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
㤁孞 2016-10-10
  • 打赏
  • 举报
回复
或者你可以综合一下楼上大神们的办法,写一个存储过程,将值全部传过来
㤁孞 2016-10-10
  • 打赏
  • 举报
回复
先select存在该记录的条数,如果条数大于0则update,如果等于0则insert
yesyesyes 2016-10-10
  • 打赏
  • 举报
回复
不管存在不存在,先delete,再insert,这样最简单
闭包客 2016-10-08
  • 打赏
  • 举报
回复
先 update,后 insert……where not exists(……)
向东流 2016-10-06
  • 打赏
  • 举报
回复
先UPDATE 如果@@ROWCOUNT =0,就INSERT
卖水果的net 版主 2016-10-05
  • 打赏
  • 举报
回复
引用 2 楼 uhjiok123 的回复:
谢谢版主 我也正好碰到这个问题 可是 merge 是在SQL server 2008 中才被引入, 像2000或者access有什么办法么? 用IF 判断吗?
不支持 merge 的,要通过两个语句实现了。 一个 insert ,加 not exists 条件 一个 update ,加exists 条件
三樱椒 2016-10-04
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
楼主先百度一下 merge 这个的用法,很适合你现在的场景;
谢谢版主 我也正好碰到这个问题 可是 merge 是在SQL server 2008 中才被引入, 像2000或者access有什么办法么? 用IF 判断吗?
卖水果的net 版主 2016-10-04
  • 打赏
  • 举报
回复
楼主先百度一下 merge 这个的用法,很适合你现在的场景;

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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