2013-02-07 2 views
0

저는 SQL 서버가 새로 도입되었습니다 (StackOverflow에서 두 번째 게시물입니다). 현재 SQL Server 2008 R2를 사용하고 있습니다. 나는 단순히 다음과 같은 결과를 얻을 것SQL - 쿼리에서 값이 반환 된 횟수를 반환합니다.

first_name last_name provider_id last_visit_date last_name 
Smith   John   1    04/25/2012  Johnson 
Doe   Jane   1    02/25/2012  Johnson 
Davies  Ann   1    03/15/2012  Johnson 
Dupree  David  1    11/20/2012  Johnson 
Jones   Becky  1    04/21/2012  Smith 
Diaz   Mike   1    02/12/2012  Smith 
Williams  Allison  1    08/05/2012  Smith 
Taylor  Joe   1    10/01/2012  Smith 

:

SELECT pt.first_name, pt.last_name, pt.provider_id, 
pt.last_visit_date, pl.last_name 
FROM dbo.pm_patient pt 
INNER JOIN dbo.ProviderList pl 
ON pt.provider_id = pl.provider_id 
WHERE pt.last_visit_date >= '02/01/2012' AND pt.last_visit_date <= '02/01/2013' 
ORDER BY provider_id 

위의 쿼리의 결과는 다음과 같은 : 나는 다음과 같은 쿼리에 접속했던 몇 테이블이

last_name NoOfPatients 
Johnson  4 
Smith  4 

누군가 나를 도와 줄 수 있습니까?

+0

다행히도 우리는 약 20 명의 제공자 만 있으며 같은 성을 갖고 있지 않습니다. – MLorenzen

답변

2

시도 :

당신은 기본적으로 당신이해야 할 것은 공급자에 의해 환자의 수와 그룹을 계산하고, querys에 그룹을 사용하는 방법에 대해 읽을 필요가
SELECT pl.last_name, count(*) NoOfPatients 
FROM dbo.pm_patient pt 
INNER JOIN dbo.ProviderList pl 
ON pt.provider_id = pl.provider_id 
WHERE pt.last_visit_date >= '02/01/2012' AND pt.last_visit_date <= '02/01/2013' 
GROUP BY pl.last_name 
+0

+1 계산 (*) 기능은 OP가 찾고있는 것입니다. – rajah9

+0

그게 나를 위해 작동합니다. 나는 count() 함수를 알고 있었고, 올바르게 구현하는 방법을 모르겠다. 빠른/품질 응답을 주셔서 대단히 감사합니다. – MLorenzen

0

.

SELECT pt.last_name, COUNT(pt.*) NoOfPatients 
FROM dbo.pm_patient pt 
INNER JOIN dbo.ProviderList pl 
ON pt.provider_id = pl.provider_id 
WHERE pt.last_visit_date >= '02/01/2012' AND pt.last_visit_date <= '02/01/2013' 
ORDER BY provider_id 
GROUP BY pt.last_name 
관련 문제