福永様。
すみません、集計関数sumを金額のところに入れる必要があります。
できるかぎり、ていねいに書いてみます。
こんな感じです。
テーブル1:----------------------------------
フィールド名 フィールドタイプ
ID(プライマリーキー) varchar
商品名 varchar
代金 integer
日付 date
---------------------------------------------
入力データ
ID 商品名 代金 日付
001 リンゴ 1200 2月7日
002 みかん 2000 2月8日
003 リンゴ 3000 3月2日
004 ばなな 4000 3月4日
005 リンゴ 210 4月1日
----------------------------------------------
データベースエンジンHSQLDB(埋め込み)
クエリデザイン(クエリ実行後、再表示知ると構成が変更されている)
フィールド 代金 to_char( "日付", 'YYYY/MM' )
エイリアス 年月
テーブル テーブル1
関数 sum group
------------------------------------------------
クエリ実行結果
sum(“テーブル1”.”代金”) 年月
3200 2017/02
7000 2017/03
210 2017/04
-------------------------------------------------
SQL文
SELECT SUM( "代金" ), to_char( "日付", 'YYYY/MM' ) AS "年月" FROM "テーブル1"
GROUP BY to_char( "日付", 'YYYY/MM' )
--------------------------------------------------------------------
--------------------------------------------------------------------
データベースエンジンfirebird(埋め込み)
クエリデザインではSQLを発行出来ませんでした。
直接発行します。
SQL文
SELECT SUM( "代金" ), LPAD( EXTRACT( YEAR FROM "日付" ), 4, '0' ) || '/' ||
LPAD( EXTRACT( MONTH FROM "日付" ), 2, '0' ) as "年月" FROM "テーブル1" group
by "年月"
日付の表示形式が2017-02でもよければ、
SELECT SUM( "代金" ), substring("日付" from 1 for 7) as "年月" FROM "テーブル1"
group by "年月"
---------------------------------------------------------------------------
firebirdはクエリデザインが使えませんでした。関数のドロップダウンリストからgroupが消えていました。以上。
On 2017年02月07日 20:04, 福永ケンセイ wrote:
回答ありがとうございました。
指摘された通り行ったのですがうまくいきません。
初心者でよくわかりません。
お手数をかけますが
そちらで実行されたクエリー全体の設定のを教えて頂けないでしょうか。
こちらで再入力し勉強したいと思います。
よろしくお願いいたします。
2017年2月7日 11:34 志義ゼミ <shigi-info@shigizemi.com
<mailto:shigi-info@shigizemi.com>>:
堀と申します。
こんな感じでは、どうでしょうか。LO5.3で確認しています。
クエリーフィールドに 「to_char("日付",'YYYY/MM')」
エイリアスに 「年月」
関数に 「GROUP」
※「」は入力しません。
を入力し、実行してみると、私の環境では月ごとの合計金額が取得できました。
しかし、再度、編集でクエリデザインを表示すると、なぜか、新たな列が追
加され、to_char([日付],'YYYY/MM')が追記されています。原因は不明とい
うか追求していません。一応、結果オーライです。
以上参考までに。
On 2017年02月07日 03:49, Takeshi Abe wrote:
On Mon, 6 Feb 2017 12:58:46 +0900, 福永ケンセイ
<merumaga1407@gmail.com <mailto:merumaga1407@gmail.com>> wrote:
日付を月でまとめて集計したいのですが。
ACCESSでは
フィールドに
1)年月:format([日付],"yyyy/mm")を入力
2)次のフィールドに商品分類、金額を追加
3)集計行を表示させて
4)集計方法を設定
5)クエリー実行でできるようなのですが
baseでは1)の段階で”不明”のエラーメッセージ出ます。
どのようにしたらよいでしょうか?
Baseでは利用しているデータベースによって使える関数が変わります。
LibreOffice 5.2や5.3では、
1. まず日付型のカラムを含むクエリーをウィザードなどで作成する
2. そのクエリーのコンテキストメニューから「SQL表示で編集」を選択
し、SQLの該当の
カラム部分を編集する
3. このクエリーを使ってレポートのウィザードでグルーピングする
というステップで上のような集計が可能です。
例としてfoo、bar、bazという3つのカラムを持つテーブルTable1を集計
するとします。
このうちbazが該当の日付型のカラムとします。
データベースにHSQLDBを使っているなら、例えば
SELECT "Table1"."foo" AS "foo", "Table1"."bar" AS "bar",
"Table1"."baz" AS "baz" FROM "Table1" "Table1"
というSQLを
SELECT "Table1"."foo" AS "foo", "Table1"."bar" AS "bar",
TO_CHAR( "Table1"."baz", 'YYYY/MM' ) AS "baz" FROM "Table1" "Table1"
のように編集します。
データベースにFirebirdを使っている場合にはTO_CHAR関数がないた
め、代わりに
SELECT "Table1"."foo" "foo", "Table1"."bar" "bar", LPAD(
EXTRACT( YEAR FROM "Table1"."baz" ), 4, '0' ) || '/' || LPAD(
EXTRACT( MONTH FROM "Table1"."baz" ), 2, '0' ) "baz" FROM
"Table1" "Table1"
のようにします。
-- Takeshi Abe
--
/////////////////////////////
志義ゼミナール 小郡校
(福岡国際高等学院小郡校)
堀 正和
〒838-0141
福岡県小郡市小郡630-62
志義>TEL/FAX:0942-73-1710
国際>TEL/FAX:0942-55-4801
/////////////////////////////
--
Unsubscribe instructions: E-mail to
users+unsubscribe@ja.libreoffice.org
<mailto:users%2Bunsubscribe@ja.libreoffice.org>
Posting guidelines + more:
http://wiki.documentfoundation.org/Netiquette
<http://wiki.documentfoundation.org/Netiquette>
List archive: http://listarchives.libreoffice.org/ja/users/
<http://listarchives.libreoffice.org/ja/users/>
All messages sent to this list will be publicly archived and cannot
be deleted
--
Unsubscribe instructions: E-mail to users+unsubscribe@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be deleted
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.