2009-08-03 14 views
0

ms sql server 2005内でクエリを作成していて、実行に問題があります。私は含まれるように私のクエリを必要とする:SQLクエリのヘルプ、ms SQL Server 2005(グループ化している)

  1. は、日付の範囲からすべてのドキュメント2009-07-20
  2. 2009-08-04には
  3. 「サイズ」フィールドを使用して合計欄は、レコード数を含めるインクルードコラム
  4. グループ別名

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

答えて

2

あなたは集計(SUM、COUNT、AVG)ないフィールドを照会しているので、あなたは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、例えば

HAVING Count(*) > 5 

マルク・

PS:あなたは、代わりにバイトのMBを表示するには、このクエリを使用する場合:

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

WH y not

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

あなたはリストではグループに列を追加する必要があります。

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