2014-12-14 2 views
-1

부품의 판매 유형을 나타내는 value = 'A'이있는 필드 코드가있는 테이블이 MySQL에 있습니다. 판매 가격은 Price으로 표시됩니다. Price으로 곱해야하는 Quantity 필드가 있습니다. 쿼리 sum(quantity*price) where code='A'은 내가 원하는 것을 나에게 준다. 또한 트랜잭션 합계의 세금을 나타내는 code = 'T'이 있습니다. 나는 충분히 쉽게 sum(price) where code='T'에 의하여 그것을 얻을 수있다. sum(quantity*price)에서 'T' (세금) 값의 값을 뺍니다.MySQL의 복잡한 수학 루틴

두 개의 별도 쿼리를 통해 반복 할 수 있지만 한 가지 쿼리로 결합하고 싶습니다.

+0

그것은 당신이 당신의 묘사에서 원하는 것을 말할 어렵다. 몇 가지 샘플 테이블 데이터와 찾고있는 결과를 보여줄 수 있습니까? – Barmar

+0

수량 가격 코드 – brucemccampbell

+0

그게 무슨 뜻입니까? ** 열 이름뿐 아니라 ** 데이터 **를 요청했습니다. – Barmar

답변

4

당신은 조건부 집계를 원하는 :

select (sum(case when value = 'A' then quantity * price else 0 end) - 
     sum(case when value = 'T' then price else 0 end) 
     ) as netprice 
+0

내가 좋아하는 것 같아. 그것은 제가 원했던 것과 가깝게 느껴지지만 제가 찾고 있던 구조의 구조였습니다. 정말 감사합니다. 이제 더 복잡한 쿼리를 수행하는 방법을 가르쳐주는 일련의 자습서에 대해 알고 있습니까? – brucemccampbell

+0

그건 기본적으로 선택 사례 함수입니다 ... 나는 그것을 연구 할 것입니다. 도움을 주셔서 감사합니다, 나는 이것을 생각하지 못했습니다. 나는 순수한 수학을 생각하고 있었다. – brucemccampbell