sqlserver 查询临近时间的纪录

2019-01-03 02:56发布

有两个表 

A表 有 单据时间,商品

单据时间 商品
2018-3-9 12:00 iphone7
2018-3-9 12:30 iphone7
2018-3-9 12:50 iphone7

B表 有 商品 单价 时间

商品 单价 时间
iphone7 1 2018-3-9 11:00
iphone7 2 2018-3-9 12:15
iphone7 3 2018-3-9 12:35

然后期待得到 根据单据时间来匹配到“商品对应价格”

比如“12:00”设置了个1块钱,“13:00”设置了2块钱,在12点后有个单据产生,那么就取12点的价格1块钱

例如上面的A、B表数据  期待得到的结果是:

单据时间 商品 促销价
2018-3-9 12:00 iphone7 1
2018-3-9 12:30 iphone7 2
2018-3-9 12:50 iphone7 2

 那么问题来了,你们会怎么写这个查询?

2条回答
我欲成王,谁敢阻挡
2楼-- · 2019-01-03 03:52

select 单据时间,商品,促销价 from A表,B表
where A表.单据时间=time and A表.商品=B表.商品

查看更多
家丑人穷心不美
3楼-- · 2019-01-03 03:58

如果是我的话,我应该会这么做。

select A表.单据时间,A表.商品,B表.促销价 from A表,B表

where (B表.单据时间==( select  max(单据时间) 

from B表 where B表.单据时间<= A表.单据时间 ))

我的sql不是很熟悉,上面大概能看出个思路。你试试?

查看更多
登录 后发表回答