adr*_*n38 4 c# sqlite winforms sql-update
我有一个用于连接和显示数据库的基本 Windows 窗体应用程序。我想使用两个表中的信息更新其中一个数据库,
UPDATE account AS a
SET accrued = (a.accrued + ((p.intrate/365)*balance))
FROM customer c JOIN product p
ON p.prodid = a.prodid
WHERE c.custid = a.custid AND active = 1
Run Code Online (Sandbox Code Playgroud)
这适用于数据库浏览器
using (SQLiteCommand cmd = connAccount.CreateCommand())
{
// adds customers details to the database
cmd.CommandText = @"UPDATE account AS a SET accrued = (a.accrued + ((p.intrate / 365) * balance)) FROM customer c JOIN product p ON p.prodid = a.prodid WHERE c.custid = a.custid AND active = 1";
cmd.ExecuteNonQuery();
MessageBox.Show("Daily Accrued Updated");
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,这给了我错误:
System.Data.SQLite.SQLiteException:““FROM”附近的 SQL 逻辑错误:语法错误”
UPDATE...FROM早于 3.33.0 的 SQLite 版本不支持代码中语句的语法。
您可以将旧语法与相关子查询一起使用:
UPDATE account AS a
SET accrued = a.accrued +
(SELECT p.intrate/365
FROM customer c JOIN product p
ON p.prodid = a.prodid
WHERE c.custid = a.custid) * a.balance
WHERE a.active = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |