みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
売上テーブルの中からある商品の販売価格の、最高値をフォームに表示させたいです
AAAという商品があり、そのAAAの最高値を表示させるだけで、他の商品については除外したいです
どのようにしたらよいでしょうか?
商品名 で自己リレーションを張って、Max ( List (自己リレーション::価格 ) ) でいいです。
または、価格の最大を求める集計フィールドを作ります。商品をキーとする小計パートだけのレイアウトを作り、商品名と集計フィールドを配置します、商品名でソートすれば各商品の最大価格が一覧されます。
Last edited by Shin (2022-11-07 18:46:34)
Offline
> AAAという商品があり、そのAAAの最高値を表示させるだけで、
> 他の商品については除外したいです
他の商品の除外
これが意味不明ですが、、
AAAのレコードにその最高販売価格を表示する
方法を
商品の自己リレーションの設定で、
販売価格の降順ソート指定します。
このリレーションの参照フィールドを配置
で表示されますね。
新たなフィールド不要です。
Offline
「AAAの最高値を表示させるだけで、他の商品については除外」
というのは、「AAAのレコードに」ではなく、全く無関係のテーブルのレイアウトに表示するのかな?
その場合は、グローバルフィールドを追加してその商品名を入れてリレーションに使えばいいですが
あるいはSQL関数で取得するのもリレーション不要なのでシンプルになります(計算式はSQLがわからないとチンプンカンプンですが)
ExecuteSQL("
SELECT MAX(\"販売価格\")
FROM \"売上\"
WHERE \"商品\"=?
";"";"";"AAA")
フォーム上にボタンバーを置いてその計算式として入れれば、フィールドは不要です。
(フィールドにする場合はグローバルにしないと、レコード数分同じ計算をして、えらいことになります)
みなさんありがとうございます
>ちぽさん
簡単な方法があったんですね
ちなみに”商品”で自己リレーションすると、仮にAAAの最高値が1000,BBBの最高値が3000だったときに
BBBの最高値が表示されることになってしまいます
伝え方が悪く意味不明な部分があったようで申し訳ないのですが
AAAのみでやるにはこの方法では無理ということになりますか?
その場合
himadaneeさんのSQL構文をになるのでしょうか
商品AAAならフラグフィールドに”1”が入るようにして
リレーション用に”0”が入った数字フィールドを用意する
リレーションで フラグ>リレーション用
とかでしょうか
なんだかまわりくどくって間違っている用な気もします
> ちなみに”商品”で自己リレーションすると、仮にAAAの最高値が1000,BBBの最高値が3000だったときにBBBの最高値が表示されることになってしまいます
”商品”で自己リレーションすると、AAA のレコードには AAA の最高値が、BBB のレコードには BBB の最高値が表示されます。
BBB のレコードでも AAA の最高値が必要ならば、グローバルフィールドを1個作り、AAA を入力し、それからリレーションを張ればいいでしょう。
Last edited by Shin (2022-11-08 13:53:01)
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 557.86 KiB (Peak: 581.69 KiB) ]