我有一个具有以下架构的数据库,我需要能够在任何给定商店的价格变化时计算差异并将其包含在查询结果中。是否可以使用以下查询?:
SELECT * from prices
WHERE rowid in (
SELECT p.rowid from prices p
LEFT JOIN prices p1
ON (p1.rowid = (select max(rowid) from prices pp where pp.rowid < p.rowid))
WHERE p.price > p1.price + .01 and p.address = p1.address
)
我想打印一份类似于此的报告:
ACME ........俄亥俄州........阿克伦........ 123榆树....... 10.25 ...... + 0.25 ACME ........俄亥俄州........阿克伦........ 123赫斯特..... 9.25 ....... + 1.25 ACME ........俄亥俄........阿克伦........ 125榆树....... 5.00 .......- 0.60
以下是我正在使用的数据示例: http://www.sqlfiddle.com/#!7/d020f/37/0
答案 0 :(得分:0)
如果要显示价格与之前的价格之间的变化,您可以使用插入查询来执行此操作。下面我设定价格为3.64。在我按行排序的查询中,但最好按日期排序
INSERT INTO PRICES
Select url, state, city, location, 3.64 as price, company, address, '5:45:11 PM 5/30/2014 est.', 3.64 -price as change FROM PRICES
WHERE address = '1670 US-31 N & I-65'
ORDER BY rowid DESC LIMIT 0,1