mysql:8848
From: <konet218@xxxxxxxxxx>
Date: Sat, 21 Feb 2004 17:18:00 +0900
Subject: [mysql 08848] Re:
近藤です。 松枝さん、ありがとう御座います。 今まで色々な方にサンプルSQLを提示して頂いた方法で頑張ってみます。 > アプリケーション構築の際には、クエリで何が出来るのか、プログラムで何が > 出来るのか、そしてどちらで行った方が適切なのか、を常に考える必要があるか > と思います。 そうですね。 今まではあまりSQL関数(?)を知らなかったので、PHP側でゴリゴリ処理してたのですが、 今回なんとかSQL側で処理出来ないかと悩んでおりました。 今一度、PHPで出来る所は任せて、取り合えず結果的に意図した事が出来るように 頑張ってみます。 ---- Original Message ----- From: "ML account" <ml@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Saturday, February 21, 2004 3:16 PM Subject: [mysql 08847] Re: > こんにちは。 > > lavlav@xxxxxxxxxxさんの > <002d01c3f795$91cfac40$fa01a8c0@d276lut1b> > "[mysql 08839] Re: " > > > TRANSFORMクエリが使えれば、一発なんですが、使えないとなると、 > [mysql08841]で沼田さんが示された方法位しか無いですね。しかし、24*2=48発 > のクエリを出して、は少々問題があるでしょう。 > > 考え方の転換をしてみましょう。結果出力がHTMLであれば、PerlなりPHP > なりJavaなりの処理系を使っていると思います。ならば、DBMSで苦心惨憺して最 > 終的な表を得るよりは、DBMSで得た中間集計を処理系で最終的な表にする方が良 > いでしょう。具体的には最終的な表の値を格納する配列に、クエリで得られたメー > ルのカウントを放り込んで行く方法です。また配列を用いなくとも、直接HTMLの > テーブルを中間集計から作成して行く事も可能ですが、これはプログラミングに > 自信がある人向けですね。 > > 中間集計を得るSQL文は例えばこの様なものでしょう。このSQL文中の > '2004-02-01'の箇所を範囲の自年月日に > '2004-02-04'の箇所を範囲の至年月日に > 1111の箇所を対象グループIDに > 置き換えを行います。 > > SELECT > TO_DAYS(mail_datetime)-TO_DAYS('2004-02-01') AS DAYS, > DATE_FORMAT(mail_datetime,'%Y-%m-%d') AS YMD, > HOUR(mail_datetime) AS HH, > master_tb_f.master_group_id AS FROM_GID, > master_tb_t.master_group_id AS TO_GID, > count(*) AS CNT > FROM (mail_tb INNER JOIN master_tb AS master_tb_f > ON mail_tb.mail_from_master_id=master_tb_f.master_id) > INNER JOIN master_tb AS master_tb_t > ON mail_tb.mail_to_master_id=master_tb_t.master_id > WHERE DATE_FORMAT(mail_datetime,'%Y-%m-%d') between '2004-02-01' AND '2004-02-04' > AND ( > master_tb_f.master_group_id=1111 OR > master_tb_t.master_group_id=1111 > ) > GROUP BY DAYS,YMD,HH,FROM_GID,TO_GID > ORDER BY DAYS,HH,FROM_GID,TO_GID > > > > アプリケーション構築の際には、クエリで何が出来るのか、プログラムで何が > 出来るのか、そしてどちらで行った方が適切なのか、を常に考える必要があるか > と思います。 > > > > 松枝知直 <tomom@xxxxxxxxxx> > http://www.argus.ne.jp/~tomom/ > >
8833 2004-02-20 17:48 [<lavlav@xxxxxxxxxx> ] 8834 2004-02-20 17:55 ┣[<lavlav@xxxxxxxxxx> ] Re: SQL 文について 8836 2004-02-20 18:09 ┣[遠藤 俊裕 <endo_t@xx] 8839 2004-02-20 18:40 ┃┗[<lavlav@xxxxxxxxxx> ] 8841 2004-02-20 20:23 ┃ ┣[<numata@xxxxxxxxxx> ] 8844 2004-02-21 04:51 ┃ ┣[Kazuhiro Yoshida <mo] 8846 2004-02-21 14:24 ┃ ┃┗[<konet218@xxxxxxxxxx] 8849 2004-02-21 17:59 ┃ ┃ ┣[Kazuhiro Yoshida <mo] 8850 2004-02-21 18:38 ┃ ┃ ┃┗[<konet218@xxxxxxxxxx] 8852 2004-02-22 02:22 ┃ ┃ ┃ ┗[Kazuhiro Yoshida <mo] 8855 2004-02-22 16:11 ┃ ┃ ┗["katayose" <katayose] 8857 2004-02-23 02:03 ┃ ┃ ┗[ML account <ml@xxxxx] 8847 2004-02-21 15:16 ┃ ┗[ML account <ml@xxxxx] -> 8848 2004-02-21 17:18 ┃ ┗[<konet218@xxxxxxxxxx] 8838 2004-02-20 18:15 ┗[Shingo Yamagai <yama] Re: SQL 文について