• ベストアンサー

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%の数値は、変わりません。どうすればいいでしょうか。ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

>分割したレコード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クリックして実行する ⑦②で追加したテーブルにコピーされる

siyan
質問者

お礼

おかげさまで出来ました。 何度も大変ありがとうございました。

Powered by GRATICA

その他の回答 (6)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.7

添付図をご覧の 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

siyan
質問者

お礼

私には、このお答えが、難しすぎて良く理解できません。誠に申し訳ございません。でも、心より感謝しています。ありがとうございました。

Powered by GRATICA
  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

回答№3の説明を少し 添付図はクエリをレコードソースとしたフォームです 分割列にはタブストップをいいえにして、スキップしますので 入力効率がが上がります クエリのフィールドに次の式を追加します。 分割10:ROUND(数量*0.1,0) 分割30:ROUND(数量*0.3,0) 分割60:数量-分割10-分割30数量の誤差をかいひしています。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.4

回答No.1の追加です。 品名がどうなっているのか不明だったのでそのままでしたが もし 品名が%ごとに統一なら 品目のフィールドを 10%用クエリ 名: "aa" 60%用クエリ 名: "bb" 30%用クエリ 名: "cc" とか元の品名に追加したいのでしたら 名: [品名] & "aa" とかにしておけばいいです。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

クエリのフィールドに次の式を追加します。 分割10:ROUND(数量*0.1,0) 分割30:ROUND(数量*0.3,0) 分割60:数量-分割10-分割30  

回答No.2

レコードを分割して表示したいのか レコードを分割して別のテーブルに登録したい のかわからなかったのですが、表示したいという風に理解し 下記の通りのイメージを添付します。 ①テーブルをもう1つ追加 ②選択クエリーで表示

siyan
質問者

補足

ご教授有り難うございます。 分割したレコードaa bb cc を元のテーブルのレコードA Bと入れ替えたいという希望です。 説明が下手で申し訳ございません。 よろしくお願いいたします。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

それぞれの割合で別のテーブルに追加する追加クエリを3個作って実行すればどうでしょう。品名がどうなっているのか不明なのでそのままにしてます。(画像は品目になってますが) 画像の右端のフィールドを 10%用クエリ 分割: [テーブル]![数量]*0.1 30%用クエリ 分割: [テーブル]![数量]*0.3 60%用クエリ 分割: [テーブル]![数量]*0.6

関連するQ&A