2011-04-05 1 views
2

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 

감사합니다!

답변

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 
+0

조금만 시도하면 곧 다시 받으실 수 있습니다 :) thx –

+0

완벽하게 작동하는 것 같습니다! 고맙습니다 ! :) –

관련 문제