2012-09-04 2 views
0
SELECT *, 
      (select SUM(sl.priceeach*sl.qty) as 'tot' 
        from salesline sl where sl.soid=so.soid) as 'total', 
      so.total, 
      so.discount, 
      so.tax 
    from salesorder so 

내가이 쿼리를 알아 내려고 노력하고 있어요하지만 세금을 표시하기 위해 다른 coloumn 총을 표시 할 수는 포함 할인 minused 데이터SQL 중첩 된 쿼리 계산

ERROR : #1054 - Unknown column 'so.total' in 'field list' 

에 무슨 잘못 내 쿼리?

+2

왜 다른 테이블 컬럼과 * 사용했다 :

SELECT a.total, so.discount, so.tax FROM salesorder so JOIN (SELECT sl.soid,SUM(sl.priceeach*sl.qty) AS 'total' FROM salesline sl GROUP BY sl.soid) A ON A.soid = so.soid 

지금과 같은 쿼리에서 다른 계산에서 사용 가능한 열이 총? – Jivan

+0

saleslorder 테이블에 total이라는 열이 있습니까? – Zeph

+0

SALESORDER 테이블에 TOTAL 열이없는 것 같습니다. 다시 한번 확인하십시오 – djadmin

답변

1

먼저 상관 관계가있는 하위 쿼리를 사용하지 않으려합니다. 실제로 커서와 같이 행 단위로 처리하는 행을 처리 할 때 절대 사용하지 마십시오.

CTE 또는 파생 테이블이 작업을 수행합니다.

SELECT a.total, 
     so.discount, 
     so.tax, 
     so.tax*a.total as TaxableAmount 
FROM salesorder so 
JOIN 
    (SELECT sl.soid,SUM(sl.priceeach*sl.qty) AS 'total' 
    FROM salesline sl GROUP BY sl.soid) A 
    ON A.soid = so.soid