求更新的关联表条件写法?

ycwww 2018-09-08 01:05:50
A表 会员主资料表

ID 用户名(唯一) 在线时间
1 张三 2018-9-8 12:59:00
2 李四 2018-9-3 12:54:00
3 王五 2018-9-1 12:51:00

B表 会员分享号码表

ID 用户名 分享号名 分享最大值(用于更新,随机生成)
1 张三 张1山 1
2 张三 张2山 2
3 李四 李1四 3
4 李四 李2四 2
5 王五 王1五 3
6 王五 王2五 2

求: update B表中的分享最大值随机为1-3,条件是要求关联的A表中对应的会员名在线时间为当日内,才更新。


...全文
846 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2018-09-08
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([ID] int,[用户名] nvarchar(22),[在线时间] DATETIME)
Insert #A
select 1,N'张三',N'2018-9-8 12:59:00' union all
select 2,N'李四',N'2018-9-3 12:54:00' union all
select 3,N'王五',N'2018-9-1 12:51:00'
GO
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([ID] int,[用户名] nvarchar(22),[分享号名] nvarchar(23),[分享最大值] int)
Insert #B
select 1,N'张三',N'张1山',0 union all
select 2,N'张三',N'张2山',0 union all
select 3,N'李四',N'李1四',0 union all
select 4,N'李四',N'李2四',0 union all
select 5,N'王五',N'王1五',0 union all
select 6,N'王五',N'王2五',0
Go
--测试数据结束
UPDATE
#B
SET
分享最大值 =ABS(CHECKSUM(NEWID())%3)+1
FROM
#A
WHERE
#A.用户名 = #B.用户名
AND DATEDIFF(DAY, GETDATE(), 在线时间) = 0

SELECT * FROM #B


22,209

社区成员

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

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