電子書籍の厳選無料作品が豊富!

下記のようなテーブルがあったとして、日にちごとの金額合計を取得したいのですが、どうすればよいのかわかりません。初歩的なことかもしれませんか、よろしくお願いします。
単純に、日付でGROUP BYしてもうまくいかないようで^^;;

-----------------------
日付      │金額
-----------------------
2005-10-18 20:54│100
2005-10-18 21:30│200
2005-10-18 24:13│150
2005-10-19 10:00│100
2005-10-19 12:00│500
2005-10-19 20:00│200

結果は、
2005-10-18 450
2005-10-19 800
と取得したいです。

A 回答 (2件)

create table #T(


d datetime,
i int
)
go
insert #T values(N'2005-10-18 20:54',100)
insert #T values(N'2005-10-18 21:30',200)
insert #T values(N'2005-10-18 00:13',150)
insert #T values(N'2005-10-19 10:00',100)
insert #T values(N'2005-10-19 12:00',500)
insert #T values(N'2005-10-19 20:00',200)

select
convert(nvarchar(10),d,111) as d2,
sum(i) as i2
from #T
group by convert(nvarchar(10),d,111)

--もっといい方法があるかも?
--何とかそれらしくなりました
    • good
    • 0
この回答へのお礼

bin-chanさん、7marineさんありがとうございました。

7marineさんの方法でうまくいきました。

お礼日時:2005/10/21 10:13

集計キー部をDate型から文字列に変換してしまいます。




select format(日付, 'yyyy-mm-dd'), sum(金額)
from テーブル
group by format(日付, 'yyyy-mm-dd')
;

でどうでしょう?
テストしてないので自信なし。

なお、Oracle、DB2なら「format」が「to_char」です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!