mysql:9495
From: UNO Shintaro <UNO Shintaro <uno@xxxxxxxxxx>>
Date: Tue, 01 Jun 2004 00:38:42 +0900
Subject: [mysql 09495] Re: 複数のフィールドを絡めた select
>社員名 入社日 退社日 > >山田 2000/04/01 2003/08/31 >鈴木 2001/05/01 2003/06/30 >大山 2000/03/01 (null) >山本 2004/01/01 2004/05/31 > >このようなテーブルから、 >入社日、退社日を「合わせて」昇順ソートしたような形で > >大山 入社 2000/03/01 >山田 入社 2000/04/01 >鈴木 入社 2001/05/01 >鈴木 退社 2003/06/30 >山田 退社 2003/08/31 >山本 入社 2004/01/01 >山本 退社 2004/05/31 > >このような結果を得たいのですが >どのようなSQL文、又はロジックで得られるものでしょうか? 工夫の余地はいろいろありますが、とりあえず、こんな雰囲気です。 ・FROM句にサブクエリーが使えるバージョンの場合 SELECT * FROM ( SELECT 社員名,'入社' AS 入退社区分,入社日 AS 日付 UNION ALL SELECT 社員名,'退社' AS 入退社区分,退社日 AS 日付 ) AS X WHERE 日付 IS NOT NULL ORDER BY 日付,社員名 ・バージョンが古い場合 CREATE TABLE X(社員名 TEXT,入退社区分 TEXT,日付 DATE); INSERT INTO X SELECT 社員名,'入社',入社日 FROM テーブル; INSERT INTO X SELECT 社員名,'退社',退社日 FROM テーブル; SELECT * FROM X WHERE 日付 IS NOT NULL ORDER BY 日付,社員名; -- UNO Shintaro, 宇野 信太郎 mailto:uno@xxxxxxxxxx http://www.venus.dti.ne.jp/~uno/
9490 2004-05-31 22:20 [mokonan <mokonan@xxx] 複数のフィールドを絡めた select -> 9495 2004-06-01 00:38 ┗[UNO Shintaro <uno@xx] 9496 2004-06-01 02:03 ┗["HIROSE, Masaaki" <h] 9497 2004-06-01 09:46 ┗[UNO Shintaro <uno@xx] 9498 2004-06-01 09:52 ┗[UNO Shintaro <uno@xx]