2016-05-18 4 views
0

年齢の範囲で報告されるケースの数が特定の日付になるメカニズムが必要です。しかし、WHEREBioData.[Date] = '05/16/2016'がエラーを出しています。範囲を含むGROUP BY節のWHERE句

誰か助けてもらえますか?あなたのFROMはちょうどあなたがおそらく不足している[t]

あるので、あなたが存在するのdoesnt [biodata]を実現

SELECT t.[Range] AS [Age Range], COUNT(*) AS [Number of Reported Cases] 
FROM (
      SELECT 
       CASE 
        WHEN Age BETWEEN 0 AND 6 THEN ' 0-6 ' 
        WHEN Age BETWEEN 07 AND 17 THEN '10-19' 
        WHEN Age BETWEEN 18 AND 60 THEN '20-29' 
        ELSE '60+' 
       END AS [Range] 
      FROM BioData 
     ) t 
WHERE BioData.[Date] = '05/16/2016' 
GROUP BY t.[Range] 
+0

をしたいと思いますエラーメッセージは何ですか? –

+0

テーブルのスキーマを共有してください – n8wrl

+0

'07と17の間の'範囲は '' 10 -19''というラベルですか? –

答えて

1

http://www.dpriver.com/pp/sqlformat.htm

SELECT t.range AS [Age Range], 
     Count(*) AS [Number of Reported Cases] 
FROM (SELECT CASE 
       WHEN age BETWEEN 0 AND 6 THEN ' 0-6 ' 
       WHEN age BETWEEN 07 AND 17 THEN '10-19' 
       WHEN age BETWEEN 18 AND 60 THEN '20-29' 
       ELSE '60+' 
       END AS range 
     FROM biodata) t 
WHERE biodata.[Date] = '05/16/2016' 
GROUP BY t.range 

のようなツールを使用してクエリを再フォーマットしてみてください。 私のクエリは次の通りですJOIN biodataしかしあなたの質問がはっきりしないので、他に何が必要なのかわかりません。

編集:いくつかの掘削後、私はあなたがこの

SELECT t.range AS [Age Range], 
     Count(*) AS [Number of Reported Cases] 
FROM (SELECT CASE 
       WHEN age BETWEEN 0 AND 6 THEN ' 0-6 ' 
       WHEN age BETWEEN 07 AND 17 THEN '10-19' 
       WHEN age BETWEEN 18 AND 60 THEN '20-29' 
       ELSE '60+' 
       END AS range 
     FROM biodata 
     WHERE biodata.[Date] = '05/16/2016') t 
    -- ^^^ move where inside `t` 
GROUP BY t.range 
+0

ありがとうございました。 –