2013-06-26 3 views
0

99 개의 레코드를 반환하는 조인 테이블이 두 개 있습니다.SQLLite 조인 테이블에서 레코드 수 받기

99 개의 레코드를 얻는 대신 계산이 필요합니다. 나는 몇 가지 검색을 한 후에 시도한 두 가지 쿼리를 가지고 있지만 둘 다 여전히 99 개의 레코드를 재조정하고 있습니다. 그래서 나는 잘못된 것이 있습니다.

lotw 테이블은 한 국가 대표자의 국가 코드 (필드 : dxcc)를 기준으로 배수 레코드를 갖거나 가질 수 있습니다. 국가 표에는 국가 코드 (필드 : 코드)와 함께 국가가 저장되어 있습니다.

내가 원하는 것은 20M 밴드와 관련된 고유 카운티 수입니다. 로트 테이블에.

먼저 나는, 나중에

에 두 개 이상의 테이블을 조인해야하기 때문에 나는 그 일을 얻을 수 있다면 나는 두 번째 방법을 선호
SELECT COUNT(cc.total) 
FROM lotw l 
JOIN (SELECT code,COUNT(Country) As total FROM CountryCode GROUP BY code) AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M') 
GROUP BY l.DXCC 

을 시도 그리고
SELECT COUNT(cc.code) 
FROM lotw l 
JOIN CountryCode AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M') 
GROUP BY l.DXCC 

시도

답변

0

검색어에서 바로 삭제

GROUP BY l.DXCC 
+0

안녕하세요 VitaliyG, 답장을 보내 주셔서 감사합니다. l.dxcc를 제거했지만 카운트를 받았지만 countrycode.code가 중복 된 것을 보여 줍니까? 나만의 국가가 필요합니까? 그래서 "SELECT 코드, COUNT (DISTINCT 국가)"시도했지만 662 동일한 결과를 얻을.이 의미가 있기를 바랍니다. – Mike

0

Ok이 작업을 수행 할 수 있도록 내 쿼리를 역으로해야했습니다.

SELECT COUNT(l.total) 
FROM CountryCode cc 
JOIN (SELECT dxcc, COUNT(*) As total FROM lotw WHERE DXCC > '' AND BAND IN ('20M') GROUP BY dxcc) AS l on l.dxcc = cc.code