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

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

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

You are not logged in.

Announcement

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


#1 2014-04-09 17:24:18

ぽぽわ
Guest

重複を除いてcountするには

ファイルメーカーproアドバンス13を使用しています。

countで関連レコードの件数は計測できますが
特定のフィールドの重複を除いた件数というのは計測できるでしょうか?

たとえば、販売履歴が下記のような場合、社名で重複を除いて「3件」というのを取得したいのです。

A社 1/4 1000円
B社 2/5 500円
C社 2/5 2000円
B社 3/5 1500円

#2 2014-04-09 18:07:08

Traveller
Guest

Re: 重複を除いてcountするには

1例
社名のカウントという集計フィールドと、Get(レコードID)という計算フィールドを作る。
自己リレーションを設定する。

  テーブル           テーブル2
   社名           =    社名
   レコードID  ≥   レコードID

重複という計算フィールドを作る、式は、テーブル2::社名のカウント=1
重複の合計という集計フィールドを作る。

#3 2014-04-09 18:10:38

Hiro
Member

Re: 重複を除いてcountするには

その関連レコードで動的値一覧を作り、その動的値一覧の内容をValueListItemsで取り出し、そのリスト行数(社数)をValueCountでカウントする。

Offline

#4 2014-04-09 19:53:34

通りすがり2
Guest

Re: 重複を除いてcountするには

ExecuteSQL関数使えば一発

ExecuteSQL ( "
    SELECT COUNT ( DISTINCT \"社名のふぃ\" ) 
    FROM \"関連テーブル名\"
    WHERE \"関連テーブルのキーフィールド\" =?
    " ;
    "" ; "" ;
    親テーブルのキーフィールド
)

#5 2014-04-09 21:14:34

wader
Member

Re: 重複を除いてcountするには

SELECT DISTINCT
はFM12より3割ぐらい早くなったみたいですが、
SELECT COUNT(DISTINCT
が遅いのは変わってないようです。
KEN_ALLの5列目でやってみると、上が2.8秒で下は34秒もかかる。
ValueCount(ExecuteSQL(”SELECT DISTINCT
にすると上と同じ時間でできます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 549.53 KiB (Peak: 581.5 KiB) ]