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

mysql:1278

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 13 Oct 1999 00:59:00 +0900
Subject: [mysql 01278] Re: お知恵拝借(うまい SQL の書き方)

とみたです。

At Tue, 12 Oct 1999 17:13:38 +0900,
endo@xxxxxxxxxx (遠藤 俊裕) wrote:

> 現在以下のようなテーブルが存在します。
> 
> CREATE TABLE WorkSchedule (
>   SerialNumber  INT NOT NULL,
>   SerialCode    INT NOT NULL,
>   CurrentDate   CHAR ( 10 ),
>   CurrentWork   CHAR ( 50 ),
>   CarType	CHAR ( 5 ),
>   Note          CHAR ( 255 )
> );
> 
> この中には「個人情報」へ繋がる SerialCode とその個人に対する
> 日付(CurrentDate)と作業(CurrentWork)が入っています。
> とりあえず、その他の情報は無視します。
> #「個人情報」は SerialCode と Name が入っているテーブルです。
> 
> ここで SerialNumber はこのレコードを一意に決める Index 項目です。
> # 宣言はしていませんが、気にしないで下さい。
> 
> で、結果として以下のような帳票を出したいと考えています。
> 
> +---------------+-----------+-----------+-----------+-----------+
> |     名 前    |    4月   |    5月   |    6月   |    7月   | …
> +---------------+---+---+---+---+---+---+---+---+---+---+---+---+
> |  遠藤 俊裕   |  5| 10| 14|  6| 11| 15|  8| 12|   |  4| 16|   | …
> |               | 15| 20| 26|   |   |   |   |   |   |   |   |   |
> +---------------+---+---+---+---+---+---+---+---+---+---+---+---+
> |名無しのごんべ |  4|  9| 18| 11| 18| 25|  7| 17|   |  7|   |   | …
> |               |   |   |   |   |   |   |   |   |   |   |   |   |
> +---------------+---+---+---+---+---+---+---+---+---+---+---+---+
> |               |   |   |   |   |   |   |   |   |   |   |   |   |
> 
> 更にある特定の条件(CurrentWork がある特定の時)数字に○を付けた
> いと思っております。
> 
> 抽出条件は「個人情報」にある条件と、WorkSchedule にある日付(CurrentDate)
> が年度内であること、それと、作業(CurrentWork)が必要な情報にマッチ
> していることです。
> 
> こんな時どんな SQL を書き、データをどう扱えば良いのでしょうか?


もひとつ処理のイメージがわかないんで外しているかもしれませんが、こんなん
ではどうでしょう?

select SerialCode, CurrentDate, if(CurrentWork="特定の値","*","") as m
from WorkSchedule where 個人情報の条件 and 日付範囲の条件 order by 1,2;

CurrentWork の条件が合えば "*" が出力されます。結果はこんな↓感じで出ま
すんで、あとは他の言語で整形すればいいと思います。

	+------------+-------------+---+
	| SerialCode | CurrentDate | m |
	+------------+-------------+---+
	|          1 | 1999-04-05  |   |
	|          1 | 1999-04-10  |   |
	|          1 | 1999-04-14  | * |
			〜〜
	|          2 | 1999-04-04  |   |
	|          2 | 1999-04-09  |   |
	|          2 | 1999-04-18  | * |
			〜〜

--
とみたまさひろ <tommy@xxxxxxxxxx>

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

      1276 1999-10-12 17:13 [<endo@xxxxxxxxxx>   ] お知恵拝借(うまい SQL の書き方)       
->    1278 1999-10-13 00:59 ┗[とみたまさひろ <tomm]                                       
      1279 1999-10-13 12:41  ┗[<endo@xxxxxxxxxx>   ]