2010-05-18 3 views
0

나는 다음과 같은 테이블이 있습니다T-SQL 자체는 집계 함수와 함께 가입

CREATE TABLE [dbo].[Tree](
[AutoID] [int] IDENTITY(1,1) NOT NULL, 
[Category] [varchar](10) NULL, 
[Condition] [varchar](10) NULL, 
[Description] [varchar](50) NULL, 
CONSTRAINT [PK_Tree] PRIMARY KEY CLUSTERED 
(
[AutoID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
GO 

데이터는 다음과 같습니다

:

INSERT INTO [Test].[dbo].[Tree] 
      ([Category] 
      ,[Condition] 
      ,[Description]) 
    VALUES ('1','Alpha','Type 1') 
INSERT INTO [Test].[dbo].[Tree] 
      ([Category] 
      ,[Condition] 
      ,[Description]) 
    VALUES ('1','Alpha','Type 1') 
INSERT INTO [Test].[dbo].[Tree] 
      ([Category] 
      ,[Condition] 
      ,[Description]) 
    VALUES ('2','Alpha','Type 2') 
INSERT INTO [Test].[dbo].[Tree] 
      ([Category] 
      ,[Condition] 
      ,[Description]) 
    VALUES ('2','Alpha','Type 2') 
GO 

내가 다음을 수행하기 위해 지금 노력을

SELECT Category,COUNT(*) as CategoryCount FROM Tree where Condition = 'Alpha' group by Category 

그러나 각 요소에 대한 설명을 가져오고 싶습니다. 몇 가지 하위 쿼리, 자체 조인 등을 시도했지만 항상 하위 쿼리가 두 개 이상의 레코드를 반환 할 수 없다는 문제가 발생합니다.

문제는 내가 변경할 수없는 데이터베이스 디자인이 좋지 않아 발생하며 단일 쿼리에서이 작업을 수행하는 방법에 대한 아이디어가 부족합니다. 당신이 설명을해야하는 경우

+0

에 포함해야? 나는 또한 설명을 풀 필요가 조금 혼란스러워. 너무 많은 다른 것들을 하나의 쿼리에 결합하려고하는 것 같습니다. – NotMe

+0

범주 = 1, 범주 개수 = 2, 설명 = 유형 1; 범주 = 2, 범주 개수 = 2, 설명 = 유형 2; – NickD

+0

샘플 결과 세트가 위에 표시된 샘플 데이터와 일치하지 않는 것 같습니다. Offer 1 및 Offer 3은 무엇입니까? – NYSystemsAnalyst

답변

3

, 당신은 당신이 결과 세트가 어떠해야하는지의 예를 줄 수 집계

SELECT Category , 
     [Description] , 
     COUNT(*) AS CategoryCount 
FROM Tree 
WHERE Condition = 'Alpha' 
GROUP BY Category , 
     [Description] 
+0

. 나는 너무 복잡한 것들을 만들었다 고 생각합니다 :-) – NickD

관련 문제