- ベストアンサー
グループ化したデータから最小ステータスの受付日を抽出する方法
- 上記の質問文章では、管理番号でグループ化されたデータから最小ステータスの受付日を抽出する方法を求めています。
- 通常は、SELECT文のGROUP BY句を使用して管理番号でグループ化し、MIN関数を使って最小ステータスを取得します。
- ただし、受付日がステータスごとに異なる場合には、一意な最小ステータスの受付日を抽出するためには別の方法が必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「受付日をステータスが一番小さな管理番号 でグループ化し、表示することはできますでしょうか?」 管理番号でグループ化した時点で、最小のステータスは抽出できますが、受付日はどのデータが抽出されるかは不定です。 なので、一旦ステータスと受付日を連結して、一つの項目(抽出用)にしてしまい、その最小値を抜き出してはどうでしょう? SELECT 管理番号, Min(ステータス & 受付日) AS 抽出用 FROM ステータステーブル GROUP BY 管理番号 こうすれば、以下のデータが抽出できるので、これを一旦テーブルに出力し、あとは、「抽出用」の項目の先頭2桁と残りの受付日に分割すれば、良いのではないでしょうか? 管理番号 抽出用 502035 302012/09/25 502036 102012/09/28 502037 102012/09/29
その他の回答 (2)
- PXU10652
- ベストアンサー率38% (777/1993)
「受付日をステータスが一番小さな管理番号 でグループ化し、表示することはできますでしょうか?」 管理番号でグループ化した時点で、最小のステータスは抽出できますが、受付日はどのデータが抽出されるかは不定です。 なので、一旦ステータスと受付日を連結して、一つの項目(抽出用)にしてしまい、その最小値を抜き出してはどうでしょう? SELECT 管理番号, Min(ステータス & 受付日) AS 抽出用 FROM ステータステーブル GROUP BY 管理番号 こうすれば、以下のデータが抽出できるので、これを一旦テーブルに出力し、あとは、「抽出用」の項目の先頭2桁と残りの受付日に分割すれば、良いのではないでしょうか? 管理番号 抽出用 502035 302012/09/25 502036 102012/09/28 502037 102012/09/29
- SakuraiMisato
- ベストアンサー率17% (42/235)
具体的な失敗結果を提示して頂けますと、蓋し比較的に回答を申し上げやすくなるでしょう。
お礼
回答、ありがとうございます。日付型とテキストを&結合して、Minが取れるんですね!助かりました。この方法で、抽出用をLEFTとRIGHTで分割して、無事に取得することができました。 ありがとうございました。