2013-04-24 2 views
1

쿼리 관련 도움을주십시오. 나는 DBMS에 약하다.쿼리 처리 SQL Server

내가

pkParentId FKProductId  Name 
    1    5    P1 
    2    5    P2 
    3    3    P3 

을 다음과 같이 일부 행이있는 테이블 TBLParent을 가지고 있고 나는 그 아이 지금

pkId  fkParentId ChildName 
1   1   C1 
2   1   c2 
3   2   c1 

로 구성되어 다른 테이블 TBLChild을 가지고, 문제는 내가 부모 레코드와 수를 원하는 것입니다 어린이는 productId을 기준으로합니다. 예를 들어

: 내가이

Select 
    count(TBLChild.pkId) AS total, 
    TBLChild.fkParentId  
from 
    TBLChild 
group by 
    TBLChild.fkParentId 

같은 시도

select 
    TBLParent.pkParentId, TBLParent.FKProductId, 
    TBLParent.Name, 
    count of its children 
where 
    TBLParent.FKProductId = 5 

를 원하지만 어떻게이 계산에 부모 테이블의 기록을 첨부 할 수 있습니다?

이렇게하면 계산할 수 있지만 어떻게하면이 수와 함께 상위 레코드를 첨부 할 수 있습니까? 제 말은 출력이

pkParentId Name  Count 
    1   P1   2 
    2   P2   1 

입니다. 도와주세요 도움이 되셨습니까?

답변

1
SELECT P.pkParentId 
     ,P.Name 
     ,COUNT(*) 
FROM tblParent P 
INNER JOIN tblChild C ON P.pkParentId = C.fkParentId 
WHERE P.pkParentId = @yourValueHere 
GROUP BY P.pkParentId, P.Name 
+0

그러나 선생님은 내가하지 pkParentId에 의해 P. ON tblChild C를 가입 tblParent P INNER로부터 P.pkParentId , P.Name , COUNT (*) 을 선택 위의 쿼리처럼 fkParentId에 의해 기록 싶어 pkParentId = C.fkParentId WHERE P.fkParentId = @yourValueHere GROUP BY P.pkParentId, P.Name – Prince

+0

위의 쿼리에서 fkParentId와 pkParentId는 동일합니다. 쿼리의 "내부 조인 (INNER JOIN)"부분이 그 역할을합니다. 귀하의 질문에 귀하의 샘플 출력을 기반 으로이 쿼리는 당신이 찾고있는 것을 제공 할 것입니다. – Aushin

+0

좋아요. @ yourValueHere = 5를 입력하면 필요한 결과를 돌려 주겠습니까? 다시 불쾌하게해서 미안해. 하지만 네가 마지막 대답에 혼란스러워했다. – Prince