[前][次][番号順一覧][スレッド一覧]

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 文について