2 sage91 sage91 于 2017.09.18 11:23 提问

sql取数据上一次出现的位置,及其对应的值

请问大神,取本条数据上一次出现时的对应的列值该如何做
比如00001产品,本次购买价格是100元,
前一次购买价格是90元。
同再一张表格中,我该如何获取上一次的值呢?

2个回答

caozhy
caozhy   Ds   Rxr 2017.09.18 11:39
 select top 1 from table order by 日期 desc where 日期 < (select max(日期) from table) 
sage91
sage91 谢谢,我大致用了这个方法,但是总觉得应该有个函数什么的直接实现,这种方法如果我同时取产品,本次购买价,上次购买价,就相当于至少连两次表格,ORDER BY应该会导致视图更慢,总觉得哪里可以改进
2 个月之前 回复
qq_33325321
qq_33325321   2017.09.18 12:42

看你表里有什么字段了
方法一:自动增长的id:根据排序id逆序,取top1,条件是小于00001产品的id
方法二:根据日期,根据排序id逆序,取top1,条件是小于00001产品的日期
类似的方法应该都行

sage91
sage91 谢谢,我大致用了这个方法,但是总觉得应该有个函数什么的直接实现,这种方法如果我同时取产品,本次购买价,上次购买价,就相当于至少连两次表格,ORDER BY应该会导致视图更慢,总觉得哪里可以改进
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片