初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-12-16 00:00:03

wave24
Guest

executesqlのgroup byについて

win7
FileMakerPro12 ADV

いつも参考にさせていただいております。

LOOP処理で9万件のレコードのキーが重複しているものを集約して、
数量を表示させていたのですが、1時間ほど処理に時間がかかっていました。

データ例
CODE  |  SURYO
100     |   10
101     |     5
201     |     5
101     |     1

あまりにも時間がかかるので、EXECUTESQLを利用しようと思い、
以下のようなSQLを実行させてみましたが、結果が?となってしまいます。

EXECUTESQL("
SELECT SUBSTR(CODE,1,2),SUM(SURYO)
FROM TABLE_A
GROUP BY SUBSTR(CODE,1,2)
";"";"")

GROUP BYの後にSUBSTRを使用せず、CODEと記述して実行すると10分くらいで
結果が返ってきますが、それだと、CODEの頭二桁での集約にはなりません。

質問したいのは、このGROUP BYの後のSUBSTR(CODE,1,2)にあたる部分の記述を
どう書けばいいかということです。

AS 別名 も試してみましたが?しか返ってきません。

SELECT句にSUBSTRが使えるので、なにかしら方法があると思うのですが、
自分が調べた限り、答えに辿りつけませんでした。

#2 2016-12-16 06:58:35

ぽんかん
Guest

Re: executesqlのgroup byについて

そこはフィールドしか使えないのでは。
いずれにしても計算フィールドを作って索引を設定しておかないと、高速に集計ができません。

#3 2016-12-16 08:08:09

Moz
Member

Re: executesqlのgroup byについて

LOOP処理で9万件のレコードのキーが重複しているものを集約して、
数量を表示させていたのですが、1時間ほど処理に時間がかかっていました。

これだけなら小計パートを使った集計でも良いのでは?

Last edited by Moz (2016-12-16 08:08:26)

Offline

#4 2016-12-16 09:57:20

旅人
Member

Re: executesqlのgroup byについて

小計パートを持った集計レイアウトでしょうね。
CODEのカウントという集計フィールドを作って
CODEを「!」で検索してからCODEでソート。

Offline

#5 2016-12-16 21:19:53

wave24
Guest

Re: executesqlのgroup byについて

みなさんご返信ありがとうございます。

EXECUTESQLにこだわりすぎていたようです。

みなさんのアドバイス通り、集計レイアウトで
簡単に、高速に結果を取得できました。

ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 506.83 KiB (Peak: 517.86 KiB) ]