Синтаксическая ошибка рядом с "," Обновление строк базы данных - PullRequest
0 голосов
/ 23 марта 2019

У меня сейчас проблема с моей программой.

Я пытаюсь обновить накопленную сумму процентов в таблице в SQL, однако я получаю ошибку

Ошибка логики SQLоколо ",": синтаксическая ошибка

Я уже пытался переписать это как выбор из базы данных, а затем обновление, но, похоже, это работает проще всего

string newaccrude =
    @"UPDATE account, product SET accrued = accrued + (balance * intrate)/365.0";

cmd = con.CreateCommand();
con.Open();
cmd = new SQLiteCommand(newaccrude, con);
reader = cmd.ExecuteReader();

Начисленные проценты должныбыть суммой вычисления в коде, и каждая строка в накопленном столбце должна быть обновлена ​​новыми значениями

Таблицы:

CREATE TABLE product  
(
    prodid INTEGER PRIMARY KEY AUTOINCREMENT,
    isaname TEXT,
    status TEXT,
    transin INTEGER,
    intrate REAL
);

CREATE TABLE account 
(
    accid INTEGER PRIMARY KEY AUTOINCREMENT,
    custid INTEGER,
    prodid INTEGER,
    balance REAL,
    accrued REAL,
    active TEXT,

    FOREIGN KEY (custid) REFERENCES customer (custid),
    FOREIGN KEY (prodid) REFERENCES product (prodid)
);

1 Ответ

2 голосов
/ 23 марта 2019

Ошибка говорит само за себя: в этом месте нельзя ставить запятую.

С определением таблицы, которым вы поделились, я бы сделал:

UPDATE account
SET accrued = accrued +
    (SELECT account.balance*intrate/365 FROM product WHERE product.prodid = account.prodid)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...