2012-04-30 13 views
1

特定のグループのユーザーによってデータを並べ替えようとしています。私のようなデータが見える:私はこれまでのところで持っているクエリSQL Serverでクエリヘルプをグループ化する

Origional_Date ID  FORM Total 
2012-03-01  1855 3  1283 
2012-03-01  2869 4  2306 
2012-03-01  5555 4  6440 
2012-03-01  5555 3  8373 
2012-03-01  2527 3  8476 
2012-03-01  922  3  823 
2012-03-15  2907 4  1420 
2012-03-15  5555 3  2892 
2012-03-15  2914 4  5008 
2012-03-15  2375 3  4594 

WebはIDです
Origional_Date ID  FORM Total 
2012-03-01  Web  3  8373 
2012-03-01  Direct 3  10582 
2012-03-01  Web  4  6440 
2012-03-01  Direct 4  2306 
2012-03-15  WEB  3  2892 
2012-03-15  Direct 3  4594 
2012-03-15  Direct 4  6428 

DECLARE @StartDate smalldatetime, @EndDate smalldatetime, @Web_ID as smallint 
    SET @StartDate = '20120301' 
    SET @EndDate = '20120331' 
    SET @Web_ID = '5555' 

SELECT DATEADD(WEEK, DATEDIFF(WEEK, 0, [Origional_Date]), -1) as [Origional_Date] 
    ,[ID] 
    ,[Form] 
    ,SUM([Total]) as [Total] 
    FROM mytable 
    WHERE [Origional_Date] between @StartDate and @EndDate 
    AND [ID] = @Web_ID 
    GROUP BY DATEADD(WEEK, DATEDIFF(WEEK, 0, [Origional_Date]), -1), [ID], [Form] 
    ORDER BY [Origional_Date], [Form] ASC 

私がやろうとしています何がように私のデータを表示しています5555とダイレクトは何でもあります。

私は、これは「IF」文またはそれはありがとうございました

「でグループ」で行われる必要がある場合に行うことができるかどうかわかりません!

+0

あなたのフィルタのみ選択ごとに1つのIDを返します。正しい? – Jones

答えて

1

よう

はこれを同様です:IDの

select case [ID] 
    when 5555 then 'Web' 
    else 'Direct' 
    end as [ID] 
from mytable 
1

これを実現するには、case文を使用できます。あなたのケースでケースclausule

select case active 
    when 1 then 'Active' 
    when 0 then 'Inactive' 
    end   
from contract 

を使用して

SELECT DATEADD(WEEK, DATEDIFF(WEEK, 0, [Origional_Date]), -1) as [Origional_Date] 
    ,(CASE WHEN [ID] = 5555 THEN 'Web' ELSE 'Direct' END) 
    ,[Form] 
    ,SUM([Total]) as [Total] 
    FROM mytable 
    WHERE [Origional_Date] between @StartDate and @EndDate 
    AND [ID] = @Web_ID 
    GROUP BY DATEADD(WEEK, DATEDIFF(WEEK, 0, [Origional_Date]), -1), (CASE WHEN [ID] = 5555 THEN 'Web' ELSE 'Direct' END), [Form] 
    ORDER BY [Origional_Date], [Form] ASC 
関連する問題