date,productID,price----------------------20120601,10,10.120120601,20,20.120120602,020120602,30,0
该表是使用以下语句创建的:
CREATE table "Price" ("date" INTEGER NOT NulL,"productID" INTEGER NOT NulL,"price" DOUBLE,PRIMARY KEY ("date","productID"))
我想用上一个日期的同一产品的价格填写日期== 20120602的价格.
我希望桌子变成这样:
date,10.120120602,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)
但sqlite在dot附近给了我一个错误.
比我试过这句话:
UPDATE New Set New.Price = old.PriceFROM Price New,Price oldWHRER ......
sqlite在FROM附近给了我一个错误.
我仔细检查了sqlite的sql语法,但没有发现幸运.即使我从未尝试过,我认为这两个语句在MS sql Server中都可以正常工作.如果New和old的表太不同,第一个语句可能会起作用,但我需要在同一个表中.
我真的不想写一个for循环来更新我的C代码中的一行,我需要在sqlite中以正确的方式实现这一点的建议.
谢谢.
我自己也经历过这个.只需在UPDATE Price之后删除单词New以及使用New.something更改为Price.something的任何位置.我相信有一个更好的解决方案,但它的工作原理.使用评论中的代码段更新…
UPDATE Price SETprice = (SELECT old.price FROM Price old WHERE old.date = 1 AND price.productID = old.productID) WHERE price.date = 2总结
以上是内存溢出为你收集整理的UPDATE语句中表名的SQLite别名全部内容,希望文章能够帮你解决UPDATE语句中表名的SQLite别名所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)