2009-08-03 6 views
0

ms sql server 2005 내에서 쿼리를 작성하고 실행하는 데 문제가 있습니다. 나는 포함하는 내 질의를 필요로한다 : SQL 쿼리 도움말, ms sql 서버 2005 (그룹화 및 보유)

  • 는 '크기'필드를 사용하여 합계 열을 포함 2009-07-20 2009년 8월 4일에
    1. 레코드 수를 포함 날짜 범위에서 모든 문서를 포함 열
    2. 그룹으로 이름

    select Name, count(*) AS FileCount, SUM(Size) 
    From alldocs 
    Group by DirName 
    HAVING TimeCreated >= '2009-07-20' AND 
    TimeCreated <= '2009-08-04' 
    
  • 답변

    2

    당신은 집계 (SUM, AVG COUNT 개), 당신은 보통 사용할 수없는 필드에 질의하고 있기 때문에 WHERE :

    SELECT 
        DirName, count(*) AS FileCount, SUM(Size) 
    FROM 
        alldocs 
    WHERE 
        TimeCreated >= '2009-07-20' 
        AND TimeCreated <= '2009-08-04' 
    GROUP BY 
        DirName 
    

    당신 만이 기반으로 뭔가를 제한 할 경우 HAVING 필요 aggreate, eg

    HAVING Count(*) > 5 
    

    마크

    PS :

    SELECT 
        DirName, count(*) AS FileCount, SUM(Size)/(1024*1024) as 'Size MB' 
    FROM 
        alldocs 
    WHERE 
        TimeCreated >= '2009-07-20' AND TimeCreated <= '2009-08-04' 
    GROUP BY 
        DirName 
    
    +0

    은 크기 필드에서 변환을 실행하는 쉬운 방법이므로 MB 구절 바이트를 표시합니까? –

    0

    어 y 아니오

    select Name, count(*) AS FileCount, SUM(Size) 
    From alldocs 
    WHERE TimeCreated between '2009-07-20' AND '2009-08-04' 
    Group by DirName 
    

    ?

    +0

    필드 이름을 변경 하시겠습니까? – adatapost

    0

    당신은 목록함으로써 그룹에 이름을 열을 추가한다 : 대신 바이트 MB를 표시하려면이 쿼리를 사용 .

    SELECT Name, count(*) AS FileCount, SUM(Size) 
    FROM alldocs 
    WHERE TimeCreated between '2009-07-20' AND '2009-08-04' 
    GROUP BY Name