• ベストアンサー

SQL文について

初心者です。 エクセルのマクロを使用して、 統計表を作成しようと試みています。 テーブルの項目に 更新者、 更新日、 登録日、 回答日、 問い合わせ内容があります。 一日の時間帯別登録件数を表示したいのですが、 どのように書いてよいのか解りません。 自分でも書いてみたのですが、うまくできませんでした。 ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>この場合も登録時間列を仮想的に作って取得すればよいのでしょうか?? いいえ、登録日に時間も持っているのであれば、特別「登録時間」という列を設ける必要はありません。 私は実はSQLサーバーを使ったことが無いので、少々、間違いがあるかもしれませんが。 一応、調べたところ次でよいのでは?と思います。 SELECT LEFT(CONVERT ( varchar(20) , 登録日, 108 ),2)       AS 時間帯、       COUNT(登録日) AS 件数 WHERE 登録日 = 「知りたい日」 GROUP BY       LEFT(CONVERT ( varchar(20) , 登録日, 108 ),2) 文中の「AS ~」というのは列別名です。これで取得したい列の結果は列別名で指定することができます。補足まで。 

makitty
質問者

お礼

いつも早い回答をありがとうございます。 できました!! 本当にありがとうございます。m(__)m

その他の回答 (1)

回答No.1

>一日の時間帯別登録件数 標記の中では時間帯を表す項目がありませんので、登録時間という項目を新規に設けるのがベターだと思います。 (登録日に時間も持っているのでしょうか?そちらの方が複雑になりますが、実現は可能です。) この例では、先述のように「登録時間」という列をまず追加して下さい。 そして本題のSQL文は次のようになると思います。 SELECT 登録時間の時間(HHの部分)、       COUNT(登録日) WHERE 登録日 = 「知りたい日」 GROUP BY     登録時間の時間(HHの部分) 「登録時間の時間(HHの部分)」は一度、文字列型に変換して、その文字列の左2桁を取得というやり方でよいと思います。

makitty
質問者

補足

早急のお答えどうもありがとうございます。 登録日に時間も持っています。 この場合も登録時間列を仮想的に作って取得すればよいのでしょうか??

関連するQ&A