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

元のテーブルの順で結果を取得したい


お世話になります。
VBA SQL Sever で作成しております。

以下のSQLを実行しているのですが、
私が欲しい結果としては、
------------------------------------
部材   用紙銘柄 用紙代理店,SUM(枚数)
本文   A     あ     50
前見返し B     あ 10
後見返し C     あ 20
表紙 D     あ 10


なのですが、結果が
------------------------------------
部材   用紙銘柄 用紙代理店,SUM(枚数)
本文   A     あ     50
前見返し B     あ 10
表紙 D     あ 10
後見返し C     あ 20

の形で出てしまいます。
※部材の順が
元のテーブルの上から順の
本文・前見返し・後見返し・表紙
ではなく、
本文・前見返し・表紙・後見返し
の順になってしまう。



どのようにすれば、希望する結果が獲れるのか
教えて頂けないでしょうか?



---------------SQL文----------------------
SELECT
部材,用紙銘柄,用紙代理店,SUM(枚数)


FROM
[用紙枚数計算シート$]

GROUP BY
部材,用紙代理店,用紙銘柄




----------テーブル----------------------
部材 用紙銘柄 用紙代理店 枚数
本文 A あ 10
本文 A あ 10
本文 A あ 10
本文 A あ 10
本文 A あ 10
前見返し B い 10
後見返し C い 20
表紙 D う 10




何卒宜しくお願い致します。

A 回答 (2件)

「元のテーブルの順」と言われ、ご質問の最後に書かれたテーブルのところにレコードを書かれていますが、これは「データを追加した順」ということを言われてますか?


データベースのテーブルにデータの追加日時といった項目を設けない限りそのような順番にはなりません。
そうではなく、「部材の昇順、更に(部材が同値の場合は)用紙銘柄の昇順、更に(用紙銘柄が同値の場合は)・・・」という具合に並べたいということでしたら、ORDER BY句でそのことを指定して取り出してあげないと思うようには並びません。

以下My SQLの解説ページですが参考に。

https://www.dbonline.jp/mysql/select/index11.html
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。

order by句を使用するのはわかっているのですが、
「データを追加した順」に取得する方法がわからないのです。。。
※部材の昇順等ではなく、「データを追加した順」

もし、技術的にご存知でしたら教えて頂ければありがたいです。

よろしくお願いいたします。

お礼日時:2017/04/18 14:16

No.1です。



> 「データを追加した順」に取得する方法がわからないのです。。。
> ※部材の昇順等ではなく、「データを追加した順」

No.1に書きましたとおりデータベースのテーブルにデータの追加日時といった項目を設けない限りそのような順番にはなりません。
そこのご理解が出来ておられないようで。。。

例えばご質問の最後に書かれているテーブルの場合、、、

「部材」、「用紙銘柄」、「用紙代理店」、「枚数」

という既存の4項目に加え「追加日」といった項目を設け、検索結果をこの項目の昇順に取り出すようにされればよいです。
なお、項目「枚数」が常に更新される値の場合、「データを追加した順」とはどうい意味合いになるかの仕様をよくお考えになって決める必要があるかと思います。

参考まで。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

できました!!!

お礼日時:2017/04/21 11:01

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