我一直在遇到SQL问题,我正在使用SQLite数据库,遗憾的是没有让以下工作。感谢所有帮助。
我希望以下查询对适合条件的transactionTable的amount列中的所有整数求和。其中一个条件在外部查询中从行更改为行,因此我希望内部查询对外部查询中的每一行运行一次。
运行此查询时出现以下错误:“no such column:ct.name” 我在下面的查询中加粗了我认为错误的界限。
表1:categoryTable
columns: id, icon, name, starred
表2:transactionTable
columns: id, date, amount, sign, category
查询:
SELECT id, icon, name, starred, mySum
FROM categoryTable ct,
(SELECT sum(amount) AS mySum FROM transactionTable
WHERE date<'1992' AND date>'1990'
AND sign = '-' AND category=ct.name) AS sumTable
WHERE mySum!=0
ORDER BY mySum DESC
谢谢!
答案 0 :(得分:5)
我认为这可以在没有子查询的情况下完成。试试这个版本。
SELECT ct.id, ct.icon, ct.name, ct.starred, SUM(tt.amount) AS transactionSum
FROM categoryTable ct
INNER JOIN transactionTable tt
ON ct.name = tt.category
AND tt.date < '1992'
AND tt.date > '1990'
AND tt.sign = '-'
GROUP BY ct.id, ct.icon, ct.name, ct.starred
HAVING SUM(tt.amount) != 0
ORDER BY transactionSum DESC