2014-11-07 6 views
0

특정 기준에 따라 데이터를 필터링하는 쿼리를 만들려고합니다. 내가보고있는 테이블에는 송장 주문 데이터가 있습니다. 예를 들어, Invoice # 1은 모든 주문 라인 (세금, 할인, 기본 가격 등)에 따라 여러 번 표시됩니다. 따라서 인보이스에 할인이 적용된 모든 인보이스를 표시하지는 않지만 여전히 다른 주문 행을 모두보고 싶습니다. discount를 포함하는 모든 행에 대해 where 문을 수행하면 다른 모든 것을 분리합니다. 그래서 할인을 적용 할 경우 송장의 모든 orderline 행을 표시하는 쿼리를 작성하는 방법은 무엇입니까? 같은행 수준별 SQL 필터

+0

수정 된 if 문일까요? –

답변

1

사용 무언가 : 첫 번째는 할인 혜택이있는 모든 송장을 얻을 수

SELECT * FROM MyTable WHERE InvoiceID IN (SELECT InvoiceID FROM MyTable WHERE Discount = True) 

는 ID 필드를 찾아 내고, 그 할인 모든 송장의 모든 라인을 반환합니다.

0

당신이 할 수있는 예를 들어 하위 쿼리를 사용하여 :

select * 
from Invoice inv 
where id IN (select id from Invoice where discount > 0) 

하위 쿼리가에서 할인과 모든 식별자를 검색하며, 쿼리가 그 하위에있는 ID에 대한 모든 항목을 표시합니다 -query