2013-06-18 2 views
0

죄송합니다. 초보자 용 질문입니다.하지만 여기에 조금 붙어 있습니다.SQL - 인보이스의 경우 1 열을 제외한 모든 WHERE 절?

이 tblImport -

송장 문> 수입 테이블 qryReport -> 빌드 송장 금액 SUM에 있지만 국가의 관할권에 대한 기반 tblImport에 국가별로 그룹화 보고서. 그러나 주 관할 구역에 대해서만 송장 금액을 청구하기를 원하지만 - 관할권과 상관없이 주에 관한 세금은 세금 금액에 포함 시키길 원합니다.

분명히 내 문은 다음과 같은 :

SELECT tblImport.Invoice, tblImport.State, tblImport.InvoiceAmount, tblImport.JurisdictionType, tblImport.TaxAmount 
FROM tblImport 
WHERE tblImport.JurisdictionType = 'State' 
ORDER BY State 
GROUP BY State 

가 그래서 나는 TAXAMOUNT가 WHERE 절의 대상이되고 싶지 않아, 주어진. 다른 해결 방법은 무엇입니까?

+2

어떤 DBMS를 사용하고 있습니까? 여기서 CTE가 유용하다는 것을 알 수 있었지만 SQL Server를 사용하지 않는다면 실제로 도움이되지 않습니다. –

+0

'tbl'과'qry'를 기반으로 여러분이 Access를 사용하고 있다고 가정 할 것입니다. – Gabe

+0

검색어가 의미가 없습니다. 상태별로 그룹화 중이지만 집계 함수가 없습니다. 귀하의 질문을 명확히하기 위해 샘플 데이터와 예상 결과를 제공하십시오. –

답변

0

난 당신이 Group By을 사용하고 당신이, 당신은 집계하지 않고 Invoice, JurisdictionType를 표시 할 수 없습니다이

SELECT SUM(case when tblImport.JurisdictionType = 'State' then tblImport.InvoiceAmount else 0 end) as InvoiceAmount, 
     tblImport.State, 
     SUM(tblImport.TaxAmount) as TaxAmount 
FROM tblImport 
ORDER BY State 
GROUP BY State 

같은 것을 필요가 있다고 생각합니다. 이 솔루션은 JurisdictionType = 'State'에 대해서만 InvoiceAmount을 합산하고 해당 국가에 관련된 모든 세금을 포함합니다 (관할권과 관계 없음)

+0

굉장한! 고맙습니다! 매우 도움이됩니다. 이것이 VBA 였기 때문에 내가해야만했던 변화 만있었습니다. 저는 VBA 버전이 IIF() 일 때를 고려하지 않았습니다. 고맙습니다! 일하는 것은 매력을 좋아했습니다. – user2296381