【发布时间】:2022-01-10 19:02:05
【问题描述】:
我有这个命令,我想在flutter sqlite上使用它,但它显示错误,因为sqlite中没有DECLARE。
DECLARE @totalTable TABLE
(
id INTEGER IDENTITY(1, 1),
account_id INTEGER,
title TEXT,
account_number TEXT,
client_name TEXT,
total REAL
)
INSERT INTO @totalTable (account_id, title, account_number)
SELECT id, title, account_number
FROM Accounts
DECLARE @counterVariable INTEGER, @startLoop INTEGER
SET @counterVariable = (SELECT COUNT(id) FROM @totalTable)
SET @startLoop = 1
WHILE (@startLoop <= @counterVariable)
BEGIN
UPDATE @totalTable
SET total = (SELECT SUM(total) FROM Bills
WHERE account_id = (SELECT account_id
FROM @totalTable
WHERE id = @startLoop)),
client_name = (SELECT client_name FROM Clients
WHERE id = (SELECT MIN(client_id)
FROM Bills
WHERE account_id = (SELECT MIN(account_id)
FROM @totalTable
WHERE id = @startLoop)))
WHERE id = @startLoop
SET @startLoop = @startLoop + 1
END
SELECT account_id, title, client_name, account_number, total
FROM @totalTable
有没有办法重写这个命令以在 sqlite 中使用?
【问题讨论】:
-
也没有
WHILE或SET或@-variables 或IDENTITY()等......用你用来与sqlite数据库交互的任何语言编写循环逻辑,并让它运行INSERT、UPDATEs 和最终的SELECT。 -
好吧,你的意思是 sqlite 只使用主要查询:(
标签: sql sqlite command declare temp