baseでformat関数が使えますか?

classic Classic list List threaded Threaded
4 messages Options
福永ケンセイ 福永ケンセイ
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

baseでformat関数が使えますか?

よろしくお願いします。
日付を月でまとめて集計したいのですが。

ACCESSでは
フィールドに
1)年月:format([日付],"yyyy/mm")を入力
2)次のフィールドに商品分類、金額を追加
3)集計行を表示させて
4)集計方法を設定
5)クエリー実行でできるようなのですが

baseでは1)の段階で”不明”のエラーメッセージ出ます。
どのようにしたらよいでしょうか?
どなたか教えいただけないでしょうか
よろしくお願いします。

--
Unsubscribe instructions: E-mail to [hidden email]
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
Takeshi Abe Takeshi Abe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: baseでformat関数が使えますか?

On Mon, 6 Feb 2017 12:58:46 +0900, 福永ケンセイ <[hidden email]> 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

--
Unsubscribe instructions: E-mail to [hidden email]
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

志義ゼミ 志義ゼミ
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [ja-users] baseでformat関数が使えますか?

堀と申します。

こんな感じでは、どうでしょうか。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, 福永ケンセイ <[hidden email]> 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 [hidden email]
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

志義ゼミ 志義ゼミ
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [ja-users] baseでformat関数が使えますか?

福永様。

すみません、集計関数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 志義ゼミ <[hidden email]
> <mailto:[hidden email]>>:
>
>     堀と申します。
>
>     こんな感じでは、どうでしょうか。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, 福永ケンセイ
>         <[hidden email] <mailto:[hidden email]>> 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
>     [hidden email]
>     <mailto:users%[hidden email]>
>     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 [hidden email]
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
Loading...