与相关的子查询的问题,内部查询找不到列

问题描述:

我一直有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 
+0

将尝试这是一点点,尽快回复你:) thx – 2011-04-05 16:38:04

+0

似乎是完美的工作!谢谢 ! :) – 2011-04-05 17:00:27