2015-01-23 2 views
0

관련 데이터가 두 개인 테이블이 있습니다.집계 쿼리 결합

  • 표 1 - 브로커에 의해 모든 거래 내역
  • 표 2 - 모든 무역 휴식 I에 의해 거래의 수를 총 쿼리를 생성

(오류/차/문제 있었다 거래) 그때 이전의 두를 결합하는 쿼리를 만들어 2

표 1

에서 브로커 나는 테이블에서 브로커 "휴식"의 수를 총 쿼리를 생성 쿼리 생성 및 통계

예 :

Broker  Total Trades  Total Breaks  Break % 
Goldman   10     4    40% 
Morgan   10     2    20% 

보다는 3 개 쿼리 생성 - 동일한 결과를 달성 한 쿼리를 생성하는 방법이 있는가? 나는 수많은 개별 쿼리를 통해 데이터베이스를 침투하지 않고보다 상세한 분석/보고서를 수행하려고합니다.

첫 번째 쿼리 아래 SQL 코드 :

SELECT DISTINCTROW [All Breaks].Broker, Sum([All Breaks].TradeCount) AS 
[Sum Of TradeCount] 
FROM [All Breaks] 
GROUP BY [All Breaks].Broker; 

두 번째 쿼리 :

SELECT DISTINCTROW [All Trades].Broker, Sum([All Trades].TradeCount) AS 
SumOfTradeCount 
FROM [All Trades] 
GROUP BY [All Trades].Broker; 

최종 결과 : 결합

SELECT [Broker List].Broker, [All Breaks Query].[Sum Of TradeCount], [All 
Trades Query].SumOfTradeCount, [Sum Of TradeCount]/[SumOfTradeCount] AS 
Percentage 
FROM ([Broker List] INNER JOIN [All Breaks Query] ON [Broker List].Broker 
= [All Breaks Query].Broker) INNER JOIN [All Trades Query] ON [Broker 
List].Broker = [All Trades Query].Broker; 

정말 감사합니다!

+0

정직을 참조하십시오 - (액세스 새로운 RDMS의 일부만큼 강력하지 않기 때문에) 나는이 같은 문제를 해결 탐색 몇 가지 방법이 넣어했다 쿼리는 임시 테이블을 생성합니다. 그런 다음 결과 세트를 테이블 데이터로 사용할 수 있으며 Access의 SQL 제한 사항에 따라 제한 될 필요가 없습니다. –

+0

복제를 시도하지 않고 작업이 매우 적합하다고 말하고 싶습니다. SQL 분석은 스태킹이나 중첩에 의존하며 때로는 "침수 된"느낌이 들지만 적은 수의 개체로 통합하면 코드를 유지 관리하는 데 많은 비용이 듭니다. – Smandoli

+1

왜 DistinctRow를 사용하고 있습니까? 고마워. – NoChance

답변

0

쿼리 디자인에서 sql을 자유롭게 작성할 수있는 SQL보기로 전환 할 수있는 방법이 있습니다.

select one, two from (select one, joinfield from table1) as first Inner join (select two, joinfield from table2) as second ON first.joinfield = second.joinfield.

또한, Combining two MS Access queries