求设计SQL语句

超级大咸鱼 2016-08-26 09:25:36
SQL Server数据库
2张表

表A
3个字段 NAME 类型为VARCHAR,START_TIME和STOP_TIME类型都为TIME

NAME | START_TIME | STOP_TIME
A | 08:00 | 16:00
B | 16:00 | 00:00
C | 00:00 | 08:00


表B
2个字段 NAME 类型为VARCHAR, CREATION_TIME 类型为DATETIME

NAME | CREATION_TIME
test | 2016-08-24 10:19:26.217
test2 | 2016-08-25 17:28:27.105
test3 | 2016-08-25 18:21:17.216
test4 | 2016-08-26 07:05:10.056

现在要求做一张视图, 查询表B的NAME 字段和 表A的 NAME 字段, 但是 关联信息是 表B 的CREATION_TIME 字段 在表A 的 START_TIME和STOP_TIME范围内 根据范围不同 查询不同的 A.NAME

查询结果应为:
B.NAME | A.NAME
test | A
test2 | B
test3 | B
test4 | C

...全文
199 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gtclulong 2016-08-26
  • 打赏
  • 举报
回复

select B.Name,A.Name from 表A A,
(select Name, convert(char(8),creation_time,108) as createTime from 表B) B
where  B.createTime between  convert(char(8),A.Start_Time,108) and convert(char(8),A.Stop_Time,108)        
这样子行吗?不过你的StopTIme有比StartTime小的,这样子的表真的没问题吗?00点与24点可是不一样啊
飞天凤凰601 2016-08-26
  • 打赏
  • 举报
回复
你的A表应该是这样 B | 16:00 | 23:59

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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