查询无证件的车辆信息

Backcanhave7 2019-12-18 10:06:57
有两个表,一个是车辆表vehicle,一个是车辆证件表vehicle_papers

表主要字段说明:
车辆表主要有车辆id,公司id,车牌号一,车牌号二
车辆证件表主要有证件id,车辆id,证件类型,有效日期开始时间,有效日期截止时间

我要从这两个表中统计出A公司(A公司有对应的公司ID)的车辆中没有道路运输证的车辆信息、没有行驶证的车辆信息、没有批文证的车辆信息。

说明:
1)我用的SQL Server版本是2008 R2
2)一辆车可以有多个证件,所以车辆表和车辆证件表是一对多的关系
3)不使用union all
4)查询出的结果字段:车牌号一,车牌号二,证件类型,有效日期起止时间(例如:2019/12/13-2020/12/13)

哪位能指点一下、给些思路,谢谢!
...全文
189 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Backcanhave7 2019-12-20
  • 打赏
  • 举报
回复
多谢各位 !
文盲老顾 2019-12-18
  • 打赏
  • 举报
回复
select 车牌号一,车牌号二,证件类型,有效日期开始时间,有效日期截止时间 from vehicle_papers vp with (nolock) left join vehicle v with (nolock) on v.车辆id=vp.车辆id where not exists(select top 1 1 from vehicle_papers with (nolock) where 证件类型='道路运输证')
极客诗人 2019-12-18
  • 打赏
  • 举报
回复
车辆证件表 当主表然后左连接车辆表
RINK_1 2019-12-18
  • 打赏
  • 举报
回复

SELECT 车牌号一,车牌号二,证件类型,有效日期,起止时间
FROM vehicle_papers A
JOIN vehicle B ON A.车辆id=B.车辆id
WHERE NOT EXISTS (SELECT 1 FROM vehicle_papers WHERE A.车辆id=车辆id AND 有效日期开始时间>='2019-12-13' AND 有效日期截止时间<='2020-12-13')
AND 公司id=A公司ID

22,206

社区成员

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

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