簡體   English   中英

為什么我會收到此語法邏輯錯誤?

[英]Why am I getting this syntax logic error?

我有一個連接和顯示數據庫的基本 Windows Forms 應用程序。 我想使用兩個表中的信息更新其中一個數據庫,

    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

這適用於數據庫瀏覽器

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");
}

在我的應用程序中給了我錯誤:

System.Data.SQLite.SQLiteException:'“FROM”附近的 SQL 邏輯錯誤:語法錯誤'

早於 3.33.0 的 SQLite 版本不支持代碼中的UPDATE...FROM語句的語法。

您可以將舊語法與相關子查詢一起使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM