- ベストアンサー
accessのクエリーで、レコードを分割したい。
テーブルに担当者 品名 数量 鈴木 A 100 佐藤 B 50とあります。 これを 鈴木 aa 100の10%で10 鈴木 bb 100の60%で60 鈴木 ㏄ 100の30%で30 佐藤 aa 50の10%で5 佐藤 bb 50の60%で30 佐藤 ㏄ 50の30%で15 という風にしたいです。 10% 60% 30%の数値は、変わりません。どうすればいいでしょうか。ご教授お願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>分割したレコードaa bb cc >を元のテーブルのレコードA Bと入れ替えたいという希望です。 下記の手順で如何でしょうか? ①SQLビューに下記を貼り付けて保存 例)クエリー名を「ユニオンクエリ」にします -------------------------------------------- select [担当者], 'aa' AS [品名], [数量]* 0.1 as 計算 from t_テーブルA union all select [担当者], 'bb' AS [品名], [数量]* 0.6 as 計算 from t_テーブルA union all select [担当者], 'cc' AS [品名], [数量]* 0.3 as 計算 from t_テーブルA -------------------------------------------- ※t_テーブルAを実際のテーブル名に変更 ②テーブルAをコピーして貼り付けして複製します。 例)t_テーブルA2 ③t_テーブルA2のデータを削除します ④追加クエリーを作成します。 クエリをSQLビューで開きます 下記のコードを貼りつけて保存 -------------------------------------------- INSERT INTO t_テーブルA2 ( 担当者, 品名, 数量 ) SELECT [ユニオンクエリ].担当者, [ユニオンクエリ].品名, [ユニオンクエリ].計算 FROM ユニオンクエリ; -------------------------------------------- ⑤表示しているクエリを全て閉じる ⑥追加クエリをWクリックして実行する ⑦②で追加したテーブルにコピーされる
その他の回答 (6)
- chayamati
- ベストアンサー率41% (260/624)
添付図をご覧の T_品名別(回答№3のQ_品名別)の情報の数量を10&,30%,60%に分けて、T_分割へインポートします。 Private Sub 分割_Click() DoCmd.RunSQL ("delete from T_分割 ;") DoCmd.RunSQL (" insert into T_分割(担当者,品名,数量) select 担当者,品名,数量10 from Q_品名別 ;") DoCmd.RunSQL (" insert into T_分割(担当者,品名,数量) select 担当者,品名,数量30 from Q_品名別 ;") DoCmd.RunSQL (" insert into T_分割(担当者,品名,数量) select 担当者,品名,数量60 from Q_品名別 ;") End Sub
お礼
- chayamati
- ベストアンサー率41% (260/624)
- kkkkkm
- ベストアンサー率66% (1742/2617)
回答No.1の追加です。 品名がどうなっているのか不明だったのでそのままでしたが もし 品名が%ごとに統一なら 品目のフィールドを 10%用クエリ 名: "aa" 60%用クエリ 名: "bb" 30%用クエリ 名: "cc" とか元の品名に追加したいのでしたら 名: [品名] & "aa" とかにしておけばいいです。
- chayamati
- ベストアンサー率41% (260/624)
- yumi-access
- ベストアンサー率21% (36/170)
- kkkkkm
- ベストアンサー率66% (1742/2617)
お礼