与相关的子查询的问题,内部查询找不到列
问题描述:
我一直有SQL的麻烦,我正在使用SQLite数据库,可悲的是不能得到以下工作。所有的帮助表示赞赏。与相关的子查询的问题,内部查询找不到列
我想要下面的查询来总结符合标准的transactionTable的金额列中的所有整数。在外部查询中,行之间的条件之一发生更改,所以我希望内部查询为外部查询中的每一行运行一次。
运行此查询时出现以下错误:“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
谢谢!
答
我认为这可以在没有子查询的情况下完成。试试这个版本。
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
将尝试这是一点点,尽快回复你:) thx – 2011-04-05 16:38:04
似乎是完美的工作!谢谢 ! :) – 2011-04-05 17:00:27