2012-02-05 4 views
0

한 열의 값을 기준으로 열 값을 곱하는 방법.열 값을 기준으로 열을 곱합니다.

Col1 Col2 Col3 Col4 
    10  10  10  casea (multiply col1 * col2) 
    20  20  20  caseb (multiply col1 * col3) 
    30  30  30  casec (multiply col2 * col3) 

같은 쿼리 :

select col1, col2, col3, col4, total 

물론 성능의

10,10,10,casea,100 
    20,20,20,caseb,400 
    30,30,30,casec,900 

항상 같은 중요한 문제입니다 반환합니다. 참여에 대한

감사합니다.

+1

희망 - casec *이 COL3 COL2입니까? –

답변

4
select 
    Col1, 
    Col2, 
    Col3, 
    Col4, 
    CASE Col4 
    WHEN 'casea' then col1*col2 
    WHEN 'caseb' then col1*col3 
    WHEN 'casec' then col2*col3 
    END AS Total 
FROM YourTable 
+0

이 질문을 게시하기 전에 조사를 해본 결과 이것이 제대로 수행되지 않는 올바른 해결책이라는 것을 알게되었습니다. – mko

+1

@John 성능을 위해 지속 형 계산 열과 같은 기타 기능을 사용합니다. 또는 ** 스키마와 데이터 흐름을 검토하십시오 ** –

+2

@ 존 - 왜 이것이 제대로 수행되지 않을 것이라고 생각하십니까? 의심 할 여지없이 차이를 만들어 낼 것이고 아마도 그것을 저장하는 추가 IO보다 계산하는 것이 더 저렴할 것입니다. –

관련 문제