南城Flipped 2022-04-20 09:40 采纳率: 80%
浏览 28
已结题

现在我有两个数据表 A 和表 B 需要根据B表中的违规时间 人名和日期将对应的违规内容加到A表的对应工作记录表里 如何判断 用left join可以吗

现在我有两个数据表 A 和表 B 需要根据B表中的违规时间 人名和日期将对应的违规内容加到A表的对应工作记录表里 如何判断 用left join可以吗
如果left join不行那要如何达到这种效果呢
A表

开始工作时间结束工作时间人名日期
11:3012:30A2022-04-10
13:3014:30A2022-04-10
15:3016:30A2022-04-10
17:3018:30B2022-04-10
9:3010:30B2022-04-10

B表

违规时间违规内容人名日期
13:50抽烟A2022-04-10
15:50危险驾驶A2022-04-10
15:50抽烟B2022-04-10

效果

工作开始时间工作结束时间姓名日期违规内容
11:3012:30A2022-04-10
13:3014:30A2022-04-10抽烟
15:3016:30A2022-04-10危险操作
17:3018:30B2022-04-10抽烟
9:3010:30B2022-04-10
  • 写回答

2条回答 默认 最新

  • codeSniping 2022-04-20 14:56
    关注

    两种方式:
    第一种,表B数据更新到表A:

    update A
    set A.违规内容=ISNULL(B.违规内容,'')
    from A
    left join B on A.日期=B.日期 and A.姓名=B.姓名 and B.违规时间>=A.工作开始时间 and B.违规时间<=A.工作结束时间
    

    第二种,展示的时候两表关联查询:

    select
    A.工作开始时间,
    A.工作结束时间,
    A.姓名,
    A.日期,
    ISNULL(B.违规内容,'')
    from A
    left join B on A.日期=B.日期 and A.姓名=B.姓名 and B.违规时间>=A.工作开始时间 and B.违规时间<=A.工作结束时间
    

    以上,为空判断ISNULL是SQLServer写法,mySql用IFNULL,oracle用NVL

    若有帮助,请采纳~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路