hatena の Microsoft Access 掲示板



[7227] RE:1レコードの情報を複数に分け、その後計算する方法 Name:hatena Date:2017/07/25(火) 13:40
まず最初に提案したいのは、
現状のテーブル設計の変更、つまり正規化です。

テーブル2 を下記のように変更します。

製品番号
詳細番号
重量

として、製品番号と詳細番号で複数フィールド主キーにします。

データ例
製品番号 詳細番号 重量
No1500  a101   600
No1500  a102   300
No1500  a102   250

こうするなら、テーブル3もテーブルに2にまとめていいですね。

テーブル2
製品番号
詳細番号
重量
日付
出荷重量

というように。こうすればクエリでテーブル1とテーブル2を結合するだけで理想の結果になります。

あと、テーブルの設計変更でできない事情があるなら、おすすめはしませんが、
クエリで疑似正規化する方法になります。

テーブル2より下記のようなユニオンクエリを作成します。

SELECT 製品番号, 詳細番号1 AS 詳細番号, 詳細番号1の重量 AS 重量
FROM テーブル2
UNION ALL
SELECT 製品番号, 詳細番号2 AS 詳細番号, 詳細番号2の重量 AS 重量
FROM テーブル2
UNION ALL
SELECT 製品番号, 詳細番号3 AS 詳細番号, 詳細番号3の重量 AS 重量
FROM テーブル2;

これで、上で提案した正規化したテーブルと同じ出力結果になりますので、
クエリで、それぞれのテーブルを結合すれば理想の結果になります。


スレッド記事表示 No.7221 1レコードの情報を複数に分け、その後計算する方法 gjun2017/07/24(月) 17:58 [ 返信 ]
   ┣No.7227 RE:1レコードの情報を複数に分け、その後計算する方法 hatena2017/07/25(火) 13:40
   ┣No.7228 RE:1レコードの情報を複数に分け、その後計算する方法 gjun2017/07/25(火) 17:46
   ┣No.7229 RE:1レコードの情報を複数に分け、その後計算する方法 hatena2017/07/26(水) 01:31
   ┣No.7230 RE:1レコードの情報を複数に分け、その後計算する方法 gjun2017/07/26(水) 15:40
   ┣No.7231 RE:1レコードの情報を複数に分け、その後計算する方法 hatena2017/07/26(水) 16:40
   ┣No.7234 RE:1レコードの情報を複数に分け、その後計算する方法  gjun2017/07/26(水) 19:16
   ┣No.7235 RE:1レコードの情報を複数に分け、その後計算する方法  gjun2017/07/26(水) 20:02
   ┣No.7244 RE:1レコードの情報を複数に分け、その後計算する方法 hatena2017/07/28(金) 15:02
   ┗No.7246 RE:1レコードの情報を複数に分け、その後計算する方法 gjun2017/07/28(金) 19:04

  




無料レンタル掲示板・日記・ブログ Progoo