アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスで教えてください。
縦持ちデータを横持ちデータに変更したいです。
項目数が多くてクロス集計ではできなかったため、他にやり方あれば教えて下さい。

下記のクエリがあります。
クエリ名 Q_5月実績
No. 日付 名前 品物 金額 数量 産地
1 15 佐藤 苺 500 2 栃木
1 16 佐藤 米 700 1 山形
1 20 佐藤 白菜 800 3 東京
1 25 佐藤 大根 300 1 宮城
2 10 伊藤 苺 600 3 愛知
3 3 加藤 卵 300 7 福岡
3 12 加藤 肉 450 6 大阪
例えばこんなデータがあります。
(データは本当に適当です)
これをNo.をキーにして
横並びにしたいです。
上のデータの場合、
No.は3までしかないので
行は項目入れて4行になるイメージです。
項目は全て表示したいです。
もう少し項目が多いのですが、、、そこは参考にして作りたいと思います。
やり方を教えてください。
よろしくお願いします。

質問者からの補足コメント

  • 項目数は10くらい、
    データ数は100くらいです。

      補足日時:2020/05/19 20:44
  • もともとシステムから抽出したのを
    ここまで加工したので、(いろいろなデータを組み合わせた)できたらそのままアクセスでできないかなぁと思いまして。。
    難しいそうなら他検討してみます。

      補足日時:2020/05/20 07:16

A 回答 (3件)

こういうことでしょうか?(項目は省略しています。



No 名前01 名前02 名前03・・・・名前10・・・・名前12・・・・名前15 名前16・・・・
_1 ___ ___ ___・・・・___・・・・___・・・・佐藤_ 佐藤_・・・・
_2 ___ ___ ___・・・・伊藤_・・・・___・・・・___ ___・・・・
_3 ___ ___ 加藤_・・・・___・・・・加藤_・・・・___ ___・・・・

これで良い場合は、横方向は最大でも31組と決まっていると思いますので、クエリをたくさん使いまくれば、出来なくはないです。
ただし、同じNo.、同じ日付のデータが複数件あった場合は、何らかのルールで1件に絞る必要がありますが。
また、Accessのフィールド上限数(たぶん255)に引っかかったらNGです。

Q_メイン(No.のリストを作成)
SELECT No FROM Q_5月実績 GROUP BY No

Q_サブ01
SELECT No, 名前 As 名前01 FROM Q_5月実績 WHERE 日付=1

Q_サブ02
SELECT No, 名前 As 名前02 FROM Q_5月実績 WHERE 日付=2



Q_サブ31
SELECT No, 名前 As 名前31 FROM Q_5月実績 WHERE 日付=31

「Q_メイン」に「Q_サブ01」~「Q_サブ31」をNoで外部結合し、各々のフィールドを表示させます。
ただし、前述したとおり、同じNo.と日付のデータがある場合は、「Q_サブ01」~「Q_サブ31」で「GROUP BY」をかけるなどしてください。

まあ、美しいやり方ではありませんが、ご参考までに。
    • good
    • 0

No.1です。



その項目数が横にどれだけ広がるか?ってのも扱いにくいのかもですし、何より同じフィールド名では無理が出ませんかね?
何故温香合いにくい横長にしたいのかはわかりませんが、データ量的に見たらExcelの方が楽なのでは?(フィールド名が同じでもセル番地で管理できますし)
    • good
    • 0

何かCSVファイルで一旦吐き出してExcelに取り込んだ後でVBAで処理ってのが楽そうな感じに思えてますけど、項目数もですがレコード数も相当なのでしょうか?



と経験がほぼ皆無な者はExcelへと呼び込もうと策略をしていた。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A