• 締切済み

項目数分レコードにしたい

テーブルには住所履歴が格納されていて 氏名 履歴1 履歴2 履歴3 ------ ------- ------- ----- aさん 北海道 東京 沖縄 bさん 岩手 東京 cさん 大阪 兵庫 福岡 というデータがある場合、 下のような結果に表示させるSQLを教えてください。 氏名 履歴 ------ ------- aさん 北海道 aさん 東京 aさん 沖縄 bさん 岩手 bさん 東京 cさん 大阪 cさん 兵庫 cさん 福岡 よろしくおねがいします。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

この様な非正規化テーブルを正規化されたものに組み替えるには ユニオンクエリを使います select 氏名,履歴1 as 履歴 from テーブル名 where 履歴1 is not null union all select 氏名,履歴2 as 履歴 from テーブル名 where 履歴2 is not null union all select 氏名,履歴3 as 履歴 from テーブル名 where 履歴3 is not null

関連するQ&A

  • ユニークしたレコードの他の項目も表示したい。

    下記のような重複したレコードをもつテーブルAがあって。 番号,県名,日付,型番 3,大阪部,7/21,A11 1,愛知県,5/1,A12 1,愛知県,5/1,BS2 3,大阪部,7/21,C11 2,東京都,6/20,C21 3,大阪部,7/21,C48 1,愛知県,5/1,C11 sql = "Select Distinct 番号 From BoxListDB" 下記のように番号でユニークする処理はできたのですが。 1 2 3 さらに,県名。日付などの情報も出したいのですが。 (上の重複したテーブルの例でいうと県名と日付は同じで。型番は異なります。) 1,愛知県,5/1 2,東京都,6/20 3,大阪部,7/21 SQL文はどのように書いたら良いでしょうか? アドバイスをいただけたら幸いです。 開発環境。 SQL Server 2005 Express SP1 VB2005 WindowsXP Pro SP2

  • エクセルで別シートを参照していて、参照元のデータを変更した場合

    エクセルで別シートを参照したいのですがうまくいきません。 (1)Sheet1には顧客データが入っています。 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 佐藤 大阪 女 4 鈴木 福岡 女 (2)Sheet2ではSheet1の顧客データの一部+獲得ポイントのデータが入っています。Sheet2のA列とB列に「=Sheet1!A2」とういう風に関数を入れてSheet1を参照しています。C列~は手入力でデータを入力しています。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15  2 小川 東京  1    5 3 佐藤 大阪  1    5 4 鈴木 福岡  1    5 (3)Sheet1に新たに顧客情報を入れますが、氏名は五十音順にしたいので行を挿入して入力します。(行3に加藤さんを入れました) 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 加藤 沖縄 男 4 佐藤 大阪 女 5 鈴木 福岡 女 (4)私の希望としては、(3)をしたらSheet2は↓のようになってほしいのですが、実際には(2)の状態のままです。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15   2 小川 東京  1    5 3 加藤 沖縄   4 佐藤 大阪  1    5 5 鈴木 福岡  1    5 (5)Sheet1の変更結果をSheet2に反映することは無理なのでしょうか?

  • 1つのカラムから一致している単語が何個あるか数える

    質問失礼いたします。 1つのカラムから一致している単語が何個あるか数えたい のですが、可能かどうかもわからずの状況で、質問させていただきました。 下記のように1つのカラムがあるとします table1 ┼──────────┼ │kaisai           │ ┼──────────┼ │東京、福岡、広島、愛知│ ┼──────────┼ │東京、北海道、大阪  │ ┼──────────┼ │広島、福岡、沖縄、愛知│ ┼──────────┼ │広島、福岡、愛知    │ ┼──────────┼ その中から'東京''福岡''愛知'に一致する数を調べ 下記のような結果にしたいのですが、 table1 ┼──┼ │kaisai│ ┼──┼ │3  │ ┼──┼ │1  │ ┼──┼ │2  │ ┼──┼ │2  │ ┼──┼ このようなことって、可能なのでしょうか? ご存じの方いらっしゃいましたら、恐れ入りますがSQL文と共にご回答いただければ幸いです。

    • ベストアンサー
    • MySQL
  • レコード集計のSQLについて

    お世話になります。 SQL Serverに関する質問です。 以下の内容を満たすSQLを作成したいのですが、 方法がわからず困っています。 (内容) *************************************************************** ・Aテーブル、Bテーブルには、以下のレコードが格納されています。 [Aテーブル] | key_code | code1 | code2 | code3 | money | person | ← カラム名 ---------------------------------------------- | 001 | 1 | 1 | 1 | 1000 | 10 | ---------------------------------------------- | 001 | 1 | 2 | 1 | 3000 | 10 | ---------------------------------------------- | 001 | 1 | 1 | 1 | 1000 | 10 | ---------------------------------------------- [Bテーブル] | key_code | cd1 | cd2 | cd3 | cd4 | cd5 | ・・・・・ | cd10 | ← カラム名 ------------------------------------------------------------ | 001 | 01 | 02 | 10 | 30 | 51 | ・・・・・ | 90 | ------------------------------------------------------------ | 002 | 01 | 02 | 03 | 10 | 40 | ・・・・・ | 55 | ------------------------------------------------------------ ・Aテーブルの key_code とBテーブルの key_code を関連付けて、  Bテーブルのcd1~cd10に格納されている各コード単位に集計した  Aテーブルのmoney及びpersonの値を取得したい。  例えば、 key_code = '000' でAテーブルとBテーブルを関連付けして、 Bテーブルのcd(1~10) = '10' で集計した Aテーブルの money と personの 値を求めたい。 **************************************************************** 初歩的な質問で申し訳ございませんが、 どなたかご教授願えませんでしょうか? よろしくお願いいたします。

  • アクセスで重複するレコードを追加しない方法

    条件 Office97のアクセスを利用しています。 (会社のPCなので古いものしかありません) すでに作成されたデータベースがあります。 この中に、複数のテーブル・クエリ・他(フォームやマクロなど)があります。 分かる範囲でこのデータベースを触る許可はいただいています。 ただし、テーブルや保存の方法、データ型などの基本しかわからない初心者です。 状況 今回は、あるテーブルにデータを大量に追加したいと思っています。 その際、重複する(複数条件)データは追加しないようにしたいのです。 例えば、 【テーブルA】 オートナンバー   コード   場所   納場        001   AA001   東京    A           002   AA001   東京    B           003   AA001   東京    C           004   BB001   大阪    A           005   BB001   大阪    B    【テーブルB】             コード   場所   納場                AA001   東京    B                AA001   東京    C           → AA001   東京    D                  BB001   大阪    B 上記のテーブルが2つあり、テーブルAを元に、テーブルBのデータを追加する場合、 【テーブルA】 オートナンバー   コード   場所   納場        001   AA001   東京    A           002   AA001   東京    B           003   AA001   東京    C             AA001   東京    D           004   BB001   大阪    A           005   BB001   大阪    B というように表を更新したいと思っています。 上記の表のように「コード」が一致しても「納場」が一致しなければ追加を行いたいのです。 方法をご教授ください。

  • 最終レコードの値の求め方について

    WinXP、Access2002にて以下のような納入先テーブルを作っています。 ここで、あるフォームから、「0002:株B」の新しい納入先を登録する場合 納入先コードは「03」としたいのですが、その場合の 最終の納入先コードの求め方がわかりません。 (「0001:株A」だと次に追加する場合は「04」になる) DLastでは、フィールド内の最後の値になるため 用件を満たせません。。 「対象顧客IDの納入先コードの最終番号+1」を 求める命令文になると思うのですが・・ 顧客ID 納入先コード 会社名 都道府県 ------------------------------------- 0001  01      株A   大阪 0001  02      株A   東京 0001  03      株A   兵庫 0002  01      株B   北海道 0002  02      株B   京都 求める方法はおそらくSQLでも関数でもいけるような 気がしますが、どなたか教えてください。

  • SQL 繰り返し項目を表示

    以下の条件 カラム「C1」が主キーのテーブルがAとB↓ テーブルA C1| --- AA| テーブルB C1|C2| -----| AA|11| AA|22| AA|33| とあった場合に、抽出結果を C1|C2 | ---------| AA|112233| にするためにはどのようなSQLを組めばいいのでしょうか?

    • ベストアンサー
    • MySQL
  • Excel2002 全国分の一つのデータを、地域ごとにシートにわける方法

    たとえばA列に、北海道から沖縄まで地域が表示されているとして、 A     B    C ・・・ ⇒に何列もあります。 北海道   商品名  単価・・・ 東京 大阪 東京 北海道 愛知 ↓ 何千行もあります。 このようなフォームのデータが何千行もあるシートを、 オートフィルタでA列の地域で絞ったあと一つ一つ新しいシートにコピーするという作業が大変なため、ボタン一つで(一つじゃなくてもよいのですが)ささっといっぺんに地域ごとの複数のシートができるようなやりかたはないでしょうか?

  • 【SQL】他テーブルに含まれる値に合致する行を抽出

    SQL素人ですが、SQLが使えるツールからデータを抽出したく、SQL文を教えていただけますでしょうか。 ・テーブルA:会員データが格納されている(氏名、メルアド、郵便番号等が入っている) ・テーブルB:特定の郵便番号のみが入っている テーブルAのデータの中からテーブルBに入っている郵便番号に合致するメルアドを抽出したい。 何卒宜しくお願い申し上げます。

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

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

専門家に質問してみよう