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

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

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

You are not logged in.

Announcement

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


#1 2014-01-21 01:03:42

極楽蝶
Guest

複数条件からの重複判定そしてカウント

はじめまして。データベース作成初でいきなりファイルメーカーをまかされました。しかも今年から・・・色々いたらないところがあると思いますがよろしくお願いいたします。
早速ですが、フィールドAに受注先、フィルードBに日付を入力し、フィールドCにA+B+(ABのカウント)のテキスト表示をしたいと思います。
フィールドCはA+Bのレコード検索で重複していたら01、02・・・とカウントさせる様にしたいです。
ちなみに「フィールドA&Right ( Year ( 日付 ) ; 2 )&(???)」という感じにしたいと思うのですが、重複検索し、なおかつカウントする為に(???)に入れる関数が思いうかびません。どうかお力をお貸しください。よろしくお願いいたします。

#2 2014-01-21 02:43:18

Hiro
Member

Re: 複数条件からの重複判定そしてカウント

AとBを連結する計算フィールドKを作って、それを照合キーに自己リレーションを組む。
そのリレーションの関連レコード数をCount()して重複数を得る。

・計算フィールドKの式は、
    A & ((Right(Year(B);2)*10^4)+(Month(B)*10^2)+(Day(B)))
・自己リレーションの設定は、
    「K」 = 「::K」
・重複カウントの式は、
    Count(自己リレーション::A)

よって、フィールドCの式は、
    K & Right("00" & Count(自己リレーション::A);2)

Offline

#3 2014-01-21 11:47:02

tim
Guest

Re: 複数条件からの重複判定そしてカウント

受注先の日付ごと?年ごとのような「感じ」?

もう関係ないのかもしれないけど、年が0xの場合の対処が変では?
A & Right(Year(B)*10000+Month(B)*100+Day(B);6)

#4 2014-01-21 12:07:30

チポ
Member

Re: 複数条件からの重複判定そしてカウント

リレーションだけに限れば、
フィールドの連結は必須では有りません。

複数フィールドの照合ができます。
(FM7以降です)


ジジーの老婆心・・

Offline

#5 2014-01-21 12:30:49

tim
Guest

Re: 複数条件からの重複判定そしてカウント

ああ、それを書き忘れました。年ごとの連番だったら、どうせ年の計算フィールドがいるんで、連結しても同じかなと思った。
日ごとなら、そのままリレーションできます。
https://fm-aid.com/bbs2/viewtopic.php?id=661
のを使えば
SerialIncrement ( A & Right(Year(B);2) & "01" ; Max (  テーブル2::このフィールド ) )

て書いてみたら、連番が2桁だから、やっぱり年ごとじゃなく日ごと?

#6 2014-01-21 13:04:23

極楽蝶
Guest

Re: 複数条件からの重複判定そしてカウント

ん~なにかイメージとちがうような・・・
>・計算フィールドKの式は、
>    A & ((Right(Year(B);2)*10^4)+(Month(B)*10^2)+(Day(B)))
なぜ上の計算式が?何の為に?

>フィールドA&Right ( Year ( 日付 ) ; 2 )&(???)
(???)部分に重複及びカウントの計算をし、

Right ( Year ( 日付 ) ; 2 )を仮にB、(???)をCとし

フィールドA&フィールドB&フィールドCという
ひとつのテキスト「ABC」というようなかんじでフィールドCに表示したいのです。

なにとぞよろしくお願いいたします。

#7 2014-01-21 13:11:06

チポ
Member

Re: 複数条件からの重複判定そしてカウント

そのイメージがはっきり分らないのですよ、こちら側には。


フィールドCはA+Bのレコード検索で重複していたら

受注先&日付ごと
と言っていますよね。

しかし

Right ( Year ( 日付 ) ; 2 )

ここでは「年」だけを取っています。

これでは同じ番号が振られてしまいますよ。


日ごとなのか
年ごとなのか
分りません。。

Offline

#8 2014-01-21 13:13:51

Traveller
Guest

Re: 複数条件からの重複判定そしてカウント

>>    A & ((Right(Year(B);2)*10^4)+(Month(B)*10^2)+(Day(B)))
>なぜ上の計算式が?何の為に?
テキストフィールド&日付フィールド
と直接連結してみたら判るかも。

#9 2014-01-21 14:50:17

極楽蝶
Guest

Re: 複数条件からの重複判定そしてカウント

迅速な回答ありがとうございます。

ですが、やりたいことは日付については、最初に書いていたように重複していいのです。
Right ( Year ( 日付 ) ; 2 ) (以下Bで)

A+Bで重複するのは多々あるので、重複前提で「年」だけとりだしています。ですが、Cフィールドには

>フィールドCはA+Bのレコード検索で重複していたら01、02・・・とカウントさせる様にしたい

ようするに2014年の受注先Aの場合

A14&01 A14&02 A14&03と重複していればカウントしていくようなテキスト表示をしたいのです。
どうかよろしくお願いいたします。

#10 2014-01-21 15:12:40

Hiro
Member

Re: 複数条件からの重複判定そしてカウント

うむ?説明が曖昧。
受注先を「日付」ごとでなく「年」ごと集計の意味??

なら計算フィールドKの式を、以下へ変更するだけ。
  A & Right(Year(B);2)
他は、そのままで行ける筈。

Offline

#11 2014-01-21 17:30:38

チポ
Member

Re: 複数条件からの重複判定そしてカウント

A+B

「+」は紛らわしいのでやめましょう、
FMでは和算になります。

テキストの連結は「&」です。



ご希望は
受注先ごとかつ、同年ごとをグループとして、
グループ内で連番を振る。

でいいのかな。

Offline

#12 2014-01-21 17:53:26

極楽蝶
Guest

Re: 複数条件からの重複判定そしてカウント

早速の回答ありがとうございます。

>ご希望は
>受注先ごとかつ、同年ごとをグループとして、
>グループ内で連番を振る。

まさにそのとうりです!

また
>計算フィールドKの式を、以下へ変更するだけ。
>  A & Right(Year(B);2)
>他は、そのままで行ける筈。

Kの式といいますが、フィールド内にKの式は設けたくないのですが・・・それは可能ですか?
>  A & Right(Year(B);2)

>受注先ごとかつ、同年ごとをグループとして、
>グループ内で連番を振る。

Cとして表示が理想です。

#13 2014-01-21 23:50:01

極楽蝶
Guest

Re: 複数条件からの重複判定そしてカウント

掲示板内では解決できませんでしたが、自己解決しました。
お世話になりました。

#14 2014-01-22 10:44:37

tim
Guest

Re: 複数条件からの重複判定そしてカウント

Kはレイアウト上には必要ないですよ。
年ごとなら最低限年のフィールドYear ( 日付 )が必要な気がしますが、
リレーションを使わないで解決したんでしょうか。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 529.34 KiB (Peak: 550.25 KiB) ]