我有一个名为Price的sqlite表,如下所示:
date,productId,price ---------------------- 20120601,10,10.1 20120601,20,20.1 20120602,0 20120602,30,0
该表是使用以下语句创建的:
CREATE TABLE "Price" ("date" INTEGER NOT NULL,"productId" INTEGER NOT NULL,"price" DOUBLE,PRIMARY KEY ("date","productId"))
我想用上一个日期的同一产品的价格填写日期== 20120602的价格.
我希望桌子变成这样:
date,10.1 20120602,0
所以我尝试了这个sql语句:
UPDATE Price New SET New.price = (SELECT old.price FROM Price Old WHERE New.date == 2 AND Old.date == 1 AND New.productId == Old.productId)
比我试过这句话:
UPDATE New Set New.Price = Old.Price FROM Price New,Price Old WHRER ......
我仔细检查了sqlite的sql语法,但没有发现幸运.即使我从未尝试过,我认为这两个语句在MS sql Server中都可以正常工作.如果New和Old的表太不同,第一个语句可能会起作用,但我需要在同一个表中.
我真的不想写一个for循环来更新我的C代码中的一行,我需要在sqlite中以正确的方式实现这一点的建议.
谢谢.