同步套餐

墙角在唱歌 2012-06-14 02:10:49
重新同步套餐功能 把日志中套餐代码相同,实体相同的最高版本号的记录,版本号 -1。

有个日志表 mis_package_syn_log 里面有(code(套餐代码), version(版本号), package_id, orgid(实体), id, scrq)
各位大侠给个思路吧!

...全文
83 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
墙角在唱歌 2012-06-14
  • 打赏
  • 举报
回复
嗯,领教了,太感谢了。
qybao 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
能说说什么意思吗?我有点不太懂,没有写过这样的sql语句 1楼的··
[/Quote]
更新表的version字段为version字段-1
条件是 不存在 code和orgid相同,并且version大于当前version的记录
这样的条件就相当于code和orgid相同并且只有最大的version才会满足(因为不是最大的version就必然存在version大于它的记录)
墙角在唱歌 2012-06-14
  • 打赏
  • 举报
回复
能说说什么意思吗?我有点不太懂,没有写过这样的sql语句 1楼的··
墙角在唱歌 2012-06-14
  • 打赏
  • 举报
回复
能说说什么意思吗?我有点不太懂,没有写过这样的sql语句
leandzgc 2012-06-14
  • 打赏
  • 举报
回复
我这个语句是得到同一代码中version最大的一条
leandzgc 2012-06-14
  • 打赏
  • 举报
回复
select code, version, package_id, orgid, id, scrq from mis_package_syn_log where id in (select id, max(version) v from mis_package_syn_log
group by id ) order by id
楼主试试这个语句,看看能用不?前提是ID是唯一的,也就是表主键
qybao 2012-06-14
  • 打赏
  • 举报
回复
have a try
update mis_package_syn_log a set a.version = a.version - 1
where not exists select 1 from mis_package_syn_log
where code = a.code
and orgid = a.orgid
and version > a.version

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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