• 締切済み

ソートについて

従業員名前テーブル + 従業員住所テーブル 同じ県住所が多いとこから表示させたいのですが・・。 仮:北海道20人 東京100人 大阪70人の場合 SQL結果 佐藤 東京都港区 田中 東京都港区 山田 東京都港区 山下 東京都新宿区      ・      ・      ・ 遠藤 大阪府大阪市      ・      ・ 清水 北海道札幌市 のような結果が欲しいのですが 説明が下手かもしれませんが、宜しくお願いします。

  • amd64
  • お礼率0% (0/42)
  • MySQL
  • 回答数3
  • ありがとう数0

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

従業員名前テーブル(ID、氏名) 従業員住所テーブル(ID、都道府県、住所) 以上のように仮定すると、IDで結合し、都道府県でGROUP化した時に 件数の降順でソートするということになります。 先ず、都道府県別の人数を求めるクエリを考えます。 SELECT A.都道府県,COUNT(B.ID) AS 件数  FROM 従業員住所テーブル A,従業員名前テーブル B  WHERE A.ID=B.ID GROUP BY A.都道府県 次に、このクエリと従業員住所テーブル、従業員名前テーブルを結合します。 SELECT C.氏名,B.住所 FROM  (SELECT A.都道府県,COUNT(B.ID) AS 件数   FROM 従業員住所テーブル A,従業員名前テーブル B   WHERE A.ID=B.ID GROUP BY A.都道府県) A, 従業員住所テーブル B,従業員名前テーブル C WHERE A.都道府県=B.都道府県 AND B.ID=C.ID ORDER BY A.件数 DESC 但し、上記のようなサブクエリが使えるのはVersion 4.1以上です。

回答No.2

MySQLのバージョンは何ですか? せっかく具体的なSQLを提示しても、amd64さんの環境では動かないかも知れません。 > 従業員名前テーブル + 従業員住所テーブル 従業員の名前と住所を管理するテーブルを、別に作る必要があるのでしょうか? 従業員名をある決まった順序で表示させるなら、従業員番号等の主キーが必要になります。 住所も、都道府県名とそれ以降で、列を分けた方がいいと思います。 仮に以下のような列構成の表を作るとします。 表=t1 id・・・従業員番号 name・・・社員名 pref_name・・・都道府県名 そうすると、次のようなSQL例が思い浮かびます。 select t1.* from t1, (select pref_name,count(*) as cnt from t1 group by pref_name) as x where t1.pref_name=x.pref_name order by cnt desc,id

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

それぞれの県ので作業用のテーブルに抜き出して、 件数を調べて多い順に結合ですか。 SQL文一発では無理でしょう。 プログラムが必要と思います。多分。

関連するQ&A

  • ACCESS重複データの単一処理

    ACCESS重複データの単一処理 ACCESS重複データの処理 下記ようなデータ TEL         社名            住所                FAX 0312345678    田中産業株式会社   東京都新宿区大久保1234   0312349876 0612345678    佐藤商店         大阪市中央区南船場 001   0612346789 0312341234    田中産業株式会社   東京都新宿区大久保1234   0312349999 0612343456    佐藤商店         大阪市中央区南船場 001   0612346666 1行目と3行目、2行目と4行目は同じ会社です。各会社は1行ずつ抽出したいです。 例: 0312345678    田中産業株式会社   東京都新宿区大久保1234   0312349876 0612345678    佐藤商店         大阪市中央区南船場 001   0612346789 重複判断基準は、社名と住所。抽出したデータはすべて項目を含める。重複しないデータはどれでも結構です。よろしくお願いします。

  • EXCELマクロVBAについて

    Excel2007、XPを使用しています。 AからE列に下記のような情報が入力されています。 A / B / C / D / E ID / 名前 / 住所 / 電話 / 注文日 11111 / 田中 / 東京都 / 00000000000 / 2012/08/10 11111 / 田中 / 東京都 / 00000000000 / 2012/08/09 11111 / 田中 / 東京都 / 00000000000 / 2012/08/18 11112 / 佐藤 / 京都府 / 00000000000 / 2012/08/10 11113 / 鈴木 / 北海道 / 00000000000 / 2012/08/11 11113 / 鈴木 / 北海道 / 00000000000 / 2012/08/15 A列のIDでくくったとして、 E列の注文日が最大のみの行を表示させたいです。 A / B / C / D / E ID / 名前 / 住所 / 電話 / 注文日 11111 / 田中 / 東京都 / 00000000000 / 2012/08/18 11112 / 佐藤 / 京都府 / 00000000000 / 2012/08/10 11113 / 鈴木 / 北海道 / 00000000000 / 2012/08/15 このようなことはマクロで可能なのでしょうか? 恐れ入りますがご教授お願い致します。

  • JavaScript、プルダウン絞り込み・ソート

    JavaScriptかなり初心者です。 急に必要となり、本やwebを参考に今月始めたばかりで、少しずつ理解はしているつもりですが、 正直、ソースを公開しているサイトをほぼコピペして、 webページ(.php)、タブ区切りデータ(.txt)、JavaScript(.jp)の 3つのデータで1つのwebページを作っている状態です。 ※webページ(.php)はこちらを参考にしましたhttp://phpjp.com/sample/g16DdYFFg0qDk4N9i+aQ2ILog3SDQINDg4uCqYLnlVyC8I3skKw.htm そこで、下記のような複雑な表を作りたいと考えています。 1.)ページを開いたときに表示される表 ※▲▼は昇順・降順ソートとします ※□はあらかじめ絞り込みの単語を入れた、プルダウンメニューとします No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 01┃ちくわ┃○社┃東京都港区 02┃とうふ┃△社┃東京都新宿区 03┃がんも┃○社┃北海道札幌市 04┃たたき┃□社┃高知県高知市 05┃ゴーヤ┃□社┃沖縄県那覇市 06┃マウス┃△社┃海外 2.)社名のメニューで「□社」を選択した場合 No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 04┃たたき┃□社┃高知県高知市 05┃ゴーヤ┃□社┃沖縄県那覇市 3.)更に、商品名のメニューで「魚介」を選択した場合 No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 04┃たたき┃□社┃高知県高知市 ★こちらを作るにあたって、 http://vird2002.s8.xrea.com/javascript/tableEditor.html を参考にしましたが、各見出しにメニューを設置した場合、 上記3.)の更に絞り込むことができませんでした。 もう1点、上記1.)に戻り、住所で絞り込みたい場合、 1.)ページを開いたときに表示される表 No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 01┃ちくわ┃○社┃東京都港区 02┃とうふ┃△社┃東京都新宿区 03┃がんも┃○社┃北海道札幌市 04┃たたき┃□社┃高知県高知市 05┃ゴーヤ┃□社┃沖縄県那覇市 06┃マウス┃△社┃海外 2.)住所下の住所メニュー「□1」を都道府県「東京都」で絞り込む No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 01┃ちくわ┃○社┃東京都港区 02┃とうふ┃△社┃東京都新宿区 3.)住所下の住所メニュー「□2」を市町村「港区」で絞り込む No ┃商品名┃社名┃住所 ▲▼┃□   ┃□ ┃□1:□2 ──────────── 01┃ちくわ┃○社┃東京都港区 ※「□2」は「□1」の都道府県に基づく市町村がメニューとして表示される どうか、ご回答宜しくお願い致します。 こういったテーブルは可能・不可能だけでもわかればと思っています。 何度も書いて申し訳ありませんが、初心者で勉強を始めたばかりですので、 こういったJavaScriptを1から作る際に便利な入門ページもあればお教えいただければ幸いです。

  • VBAで複数条件の検索結果を取得したい

    ExcelのVBAで複数条件の検索をおこない、出てきた結果を変数に入れて 操作をおこないたいです。 findでは複数条件はできないようですが、ループでセルの検索をおこなって if文で見ていくしか方法はないのでしょうか。 advancedfilterも調べてみましたが、検索結果を取得する方法がわかりませんでした。 アドバイスをお願いいたします。 ・Excelデータ 名前、住所、年齢、性別 田中、東京都、20、男 佐藤、北海道、30、男 渡辺、東京都、20、女 ・検索条件 住所:東京都 かつ(and) 年齢:20 ・検索結果 田中、東京都、20、男 渡辺、東京都、20、女 となった場合、上記検索結果を変数に入れて操作したいです。 ※各項目はExcelの各列に入っています。

  • エクセルで重複データの削除の方法

    エクセルのSheet1に下記のような住所録データが1万件近くあります。 電話番号をキーに重複するデータは削除したいです。 なにか良い方法がないか御指導下さい。    A     B       C        D 1 氏名   電話番号    郵便番号  住所 2 山田真理 0355551111  100-2222  東京都港区・・・ 3 島本夕太 0432225555  300-5555  北海道札幌市・・・ 4 市川正一 0355559999  444-6666  東京都北区・・・ 5 市川正一 0355559999  444-6666  東京都北区・・・ 6 島本夕太 0432225555  300-5555  北海道札幌市・・・ 7 山田真理 0355551111  100-2222  東京都港区・・・ 8 島本夕太 0432225555  300-5555  北海道札幌市・・・ 9 市川正一 0355559999  444-6666  東京都北区・・・   

  • SQL文 抽出条件 複数の場合のやり方

    下記のような状況では どのようにSQL文を書けばよいのか教えてください。 例) テーブルA 氏名ID 住所 12345 東京都XXX区XXXX町1-1-1 12346 埼玉県XXX市XXXX町1-2-1 ・・・ テーブルB 住所(詳細に記載されているものもあれば、都道府県レベルのものもある) 東京都XXX区XXXX町 東京都▲▲区○○ 北海道 埼玉県◆◆市 ・・・ テーブルBに書いていある住所で始まる 全ての氏名IDを テーブルAから取り出したい。

  • 住所の検索について

    住所テーブルの住所項目に 東京都東京市東京1 とあって、 例えば、 東京都東京市東京1-1-1 で検索した時に、東京都東京市東京1をselectする方法はないものでしょうか。 select 住所 from 住所テーブル where 住所 like '%東京都東京市東京1-1-1%' だと検索できないようでして。何か方法はございませんでしょうか? どうかご教示お願い致します。

  • 別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょ

    別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょう。 申し訳ありません基本的なSQLを教えてください。 テーブルAに住所、テーブルBに市区町村名と市区町村コードがあり、テーブルAに当該市区町村コードを付けたしたいのですが、どうやってテーブルAとBをマッチさせればよいのでしょうか 具体的に言えば テーブルA内の住所カラムが以下のようなものを含んだデータだとします。 神奈川県横浜市中区XX-XX 東京都港区赤坂XXX ・ ・ ・ テーブルBには市区町村名カラムと市区町村コードカラムがあります。 中央区,0011 港区,0012 ・ ・ 横浜市中区,0033 横浜市南区,0034 ・ ・ (一応注釈ですがCSVのイメージだと思ってください) この2つのテーブルから合致したものに対し 神奈川県横浜市中区XX-XX,0033 東京都港区赤坂XXX,0012 という形で抽出したいのですがどのようにしたら良いのでしょうか (東京の”中央区”など重複する可能性のあるものはデータ側で対応しますので重複しないと考えて結構です) よろしくお願いいたします。

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

  • ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです

    ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです。 たとえば、このようなピボットテーブルから、 [A]      [B]       [C]       [D]                         1月 Group  Account1   Account2 G0    田中         東京     5         加藤         大阪     2 G1     佐藤        大阪      3 G1    田中         名古屋       A列のGroupをキーにして、D列を集計します。 G0の合計は7で個数は2、G1の合計は3で個数は1、という結果を出すにはどのようにしたら良いでしょうか?