使用相关子查询时出现问题,内部查询无法找到列

Emi*_*der 2 sql sqlite subquery

我一直在遇到SQL问题,我正在使用SQLite数据库,遗憾的是没有让以下工作.所有帮助表示赞赏.

我想要以下查询来汇总适合条件的transactionTable的amount列中的所有整数.其中一个条件在外部查询中从行更改为行,因此我希望内部查询对外部查询中的每一行运行一次.

运行此查询时出现以下错误:"没有这样的列:ct.name"我在下面的查询中加粗了我认为错误的行.

表1:categoryTable

columns: id, icon, name, starred
Run Code Online (Sandbox Code Playgroud)

表2:transactionTable

columns: id, date, amount, sign, category
Run Code Online (Sandbox Code Playgroud)

查询:

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
Run Code Online (Sandbox Code Playgroud)

谢谢!

Joe*_*lli 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
Run Code Online (Sandbox Code Playgroud)