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

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

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

You are not logged in.

Announcement

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


#1 2016-06-09 10:36:53

げっさん
Guest

レコードをまたいでの集計<改>

以前、「レコードをまたいでの集計」というタイトルで質問させて頂いたのですが、今回は質問内容を具体的してみました。

まず一番の目的である、ロータスアプローチで作ったデータベースを忠実に再現したい(レコードを引き継ぎたい)する為に移行作業を行いました。
レコードやフィールドはほぼ忠実にインポート出来たのですが、tempファイルというモノが存在しているお陰で、一番必要な計算フィールドがインポート出来ませんでした。
そこで、無理矢理計算フィールドを作って見ましたが、上手く動いてくれません。

以下に、実際に使っている用語を使って説明させて頂きます。
図が書けないので文字だらけですが、必要最低限の情報だけ載せております。
レイアウトが3つ[メイン][A][B]とあり、[メイン]には二つのポータルAとBがあります。


[メインレイアウト]
ポータルA
色番  疋数  出荷  返品  C反  再出荷 調整 投入 仕掛残
A    0.5   0.2     0     0     0       0   0.5     0.3
B    0.5   0.2     0     0     0       0   0.5     0.3

ポータルB
処理名  色番  疋数
出 荷   A   0.2
投 入   A   0.5
出 荷   B   0.2
投 入    B   0.5


[レイアウトA]
レコード1
処理区分   [  2  ] 出荷
色  番   [  A  ]
疋  数   [  0.2 ]
レコード2
処理区分   [  7  ] 投入
色  番   [  A  ]
疋  数   [  0.5 ]
レコード3
処理区分   [  2  ] 出荷
色  番   [  B  ]
疋  数   [  0.2 ]
レコード4
処理区分   [  7  ] 投入
色  番   [  B  ]
疋  数   [  0.5 ]


[レイアウトB]
レコード1
処理区分   [  2  ]
処 理 名   [ 出荷 ]
レコード2
処理区分   [  3  ]
処 理 名   [ 返品 ]
レコード3
処理区分   [  4  ]
処 理 名   [ C反 ]
レコード4
処理区分   [  5  ]
処 理 名   [ 出荷 ]
レコード5
処理区分   [  6  ]
処 理 名   [ 調整 ]
レコード6
処理区分   [  7  ]
処 理 名   [ 投入 ]
レコード7
処理区分   [  8  ]
処 理 名   [仕掛残]


一連の作業としては、メインレイアウトの色番と疋数を入力。
その後、指図があればレイアウトAの処理区分、色番、疋数を入力して行きます。

ポータルAの計算式は以下の通りです。
出 荷=Sum(If(処理区分=2;疋数;0))
返 品=Sum(If(処理区分=3;疋数;0))
C 反=Sum(If(処理区分=4;疋数;0))
再出荷=Sum(If(処理区分=5;疋数;0))
調 整=Sum(If(処理区分=6;疋数;0))
投 入=Sum(If(処理区分=7;疋数;0))
仕掛残=疋数 - 出荷 + 返品 - C反 - 再出荷 + 調整

上記の式は、あくまでも説明であり、正式な式ではありません。
あくまでも、言葉で書くよりも計算式の方が伝わりやすいと考えたのでこのように表記しております。

説明不足等ございましたら、ご指摘宜しくお願いします。

#2 2016-06-09 11:15:01

calcer
Guest

Re: レコードをまたいでの集計<改>

前回のとは違って、クロス集計になってますね。
レコード数が多くなければ、SQLでやるのが簡単かなあ。

#3 2016-06-09 11:35:32

げっさん
Guest

Re: レコードをまたいでの集計<改>

calcerさん

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

前回のとは違って、クロス集計になってますね。
レコード数が多くなければ、SQLでやるのが簡単かなあ。

これがクロス集計というのですか?!
アプローチ上では見事に動いているのでファイルメーカーでも簡単に出来そうと思っていたのですが、見事に玉砕してしまいました・・・。
SQLは全く分かりません・・・。
ファイルメーカーも正直使いこなせてないので、是非ファイルメーカーでお願いします。

#4 2016-06-09 11:41:27

tim
Guest

Re: レコードをまたいでの集計<改>

色番がAとBの2つですけど、ポータルのABとは関係ないから実際にはもっとたくさんあるんですよね?

#5 2016-06-09 11:50:21

げっさん
Guest

Re: レコードをまたいでの集計<改>

timさん

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

色番がAとBの2つですけど、ポータルのABとは関係ないから実際にはもっとたくさんあるんですよね?

具体的なご質問が助かります。
あくまでも、メインのレコード上に入力するのは、多くても5色ほどです。
メインのレコード内では絶対に同じ名前の色番はないのですが、別レコード内では同じ色番も存在します。

では、宜しくお願いします。

#6 2016-06-09 12:44:18

calcer
Guest

Re: レコードをまたいでの集計<改>

SQLだと、ほとんど「ポータルAの計算式」まんまです。列タイトルを含まない集計結果全体が1つのテキストとして取得されます。
ExecuteSQL ( "
SELECT \"色番\", Sum(CASE WHEN \"処理区分\"=2 THEN \"疋数\" ELSE 0 END),

FROM \"Aのテーブル名\"
" ; "" ; "" )

あとはこれを表示するための仕組みを仮想リストなどで作りますが、説明はめんどいのでそのままテキストフィールドに入れてみて。

#7 2016-10-13 16:42:44

げっさん
Guest

Re: レコードをまたいでの集計<改>

ずっと放置したままで大変申し訳ないです。

いろいろお伺いしたのですが、結論から申しますと自己解決出来ました。

計算フィールドと集計フィールドの合わせ技で私自身が行いたい計算結果を得ることが出来ました。
少々、難しく考えすぎていたようです。

皆さん、本当にありがとうございます!!
そして、calcerさん。
結果的に、教えて頂いた事が理解出来ず、返信すら出来ずに今までおりました。
本当に申し訳ないです。
でも、お陰で色々と学べました。
ありがとうございます!!

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 516.13 KiB (Peak: 520.66 KiB) ]