我一直遇到 SQL 问题,我正在使用 SQLite 数据库,但遗憾的是无法使以下内容正常工作。感谢所有帮助。
我希望以下查询对 transactionTable 的 amount 列中符合条件的所有整数求和。外部查询中的条件之一随行而变化,因此我希望内部查询为外部查询中的每一行运行一次。
运行此查询时出现以下错误:“没有这样的列:ct.name” 我已将下面的查询中我认为错误的行加粗。
表1:类别表
columns: id, icon, name, starred
表2:交易表
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
谢谢!
最佳答案
我认为这可以在没有子查询的情况下完成。尝试这个版本。
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
关于sql - 相关子查询出现问题,内部查询找不到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554825/