Tengo una aplicación básica de Windows Forms que conecta y muestra bases de datos. Quiero actualizar una de las bases de datos usando información de dos tablas,
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 = 1Eso funciona en el navegador DB
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"); }Que en mi aplicacion me da el error:
System.Data.SQLite.SQLiteException: 'Error de lógica SQL cerca de "FROM": error de sintaxis'
La sintaxis de la UPDATE...FROM en su código no es compatible con versiones de SQLite anteriores a la 3.33.0.
Puede usar una sintaxis anterior con una subconsulta correlacionada:
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