有两个表
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 |
那么问题来了,你们会怎么写这个查询?
相关问题
- SQL join to get the cartesian product of 2 columns
- sql execution latency when assign to a variable
- Difference between Types.INTEGER and Types.NULL in
- php PDO::FETCH_ASSOC doesnt detect select after ba
- Bulk update SQL Server C#
select 单据时间,商品,促销价 from A表,B表
where A表.单据时间=time and A表.商品=B表.商品
如果是我的话,我应该会这么做。
select A表.单据时间,A表.商品,B表.促销价 from A表,B表
where (B表.单据时间==( select max(单据时间)
from B表 where B表.单据时间<= A表.单据时间 ))
我的sql不是很熟悉,上面大概能看出个思路。你试试?