2017-08-15 3 views
0

私は1日あたりの会社の総売上を示すグラフを作成しようとしています。それは、今日の総販売を見つけるために私のクエリです:別の月のクエリを書く

select count(*) from registered_devices where status = 1; 

、これは7日前に総販売を見つけるためのクエリです:

select count(*) from registered_devices where sysdate - 7 <TO_DATE('19700101','yyyymmdd') + ((create_time)/1000/24/60/60) and status = 1; 

私は毎日の総販売値を取り、それらを入れたいですHighchartsグラフに表示されます。しかし、あなたが知っているように、ある月には31があり、他のものには30日があるので、毎日別々にクエリを書くことはできません。これで私を助けることができますか?各月の日数が異なることについて、毎月のクエリを書く方法はありますか?ご協力ありがとうございました。

答えて

1

使用TO_CHAR()と集計日に:ここ

SELECT 
    TO_CHAR(create_time, 'yyyy/mm/dd'), 
    COUNT(*) 
FROM registered_devices 
WHERE status = 1 
GROUP BY 
    TO_CHAR(create_time, 'yyyy/mm/dd') 

1つの警告は、上記のクエリは、それは全く活性を有していない場合は、特定の日を出力しないことです。常に毎日表示するようにしたい場合は、カレンダーテーブルを作成することができます。

create_timeをチェックするWHERE句に別の条件を追加して、日付範囲を制限することもできます。

+0

OraExpからこのエラーが表示されます。「DATE_FORMAT」:無効な識別子です。理由は何ですか? – jansetk

+0

Oracleを使用していますか?なぜあなたはMySQLでタグ付けしましたか? –

+0

私は気づいていなかったので、それは薦められました。私の間違いをおかけして申し訳ありません。 – jansetk