みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
win7、FM8
下記のようなデータがあります。
テーブル名「DB」
番号 科目
001 静岡
001 山梨
001 沖縄
002 北海道
002 東京
これを下記のようにしたいです。
番号 科目 ヘッダ名 科目名
001 静岡、山梨、沖縄
001 静岡
001 山梨
001 沖縄
002 北海道、東京
002 北海道
002 東京
最初に取り込んだデータ全てをflag「1」とし、
シリアルNo.を作成、番号で自己リレーション
If ( シリアルNo. = DB 2::シリアルNo. ; "オリジナル" ; "重複" )
オリジナルレコードを検索、ヘッダテーブルにインポートします。
ヘッダデータを作成して、flag「0」とし、元のテーブルに戻して
flag、番号でソートをしようと思っています。
この科目名を1行にしたいのですが、どのようにすればいいでしょうか?
Last edited by cybe (2018-08-10 16:04:54)
Offline
>『同じ値の、科目名を取り出して1行にしたい(静岡、山梨、沖縄)』
計算フィールド「科目一覧」に算出します。その式は、
・ ExecuteSQL(" SELECT ""科目"" FROM ""DB"" WHERE ""番号""=? "; ""; "、"; 番号)
++++修正補足+++++
いけない!FM8でしたか!
なら、番号(照合の自己リレーション)で動的値一覧「科目の値一覧」を作り、
それを計算フィールド「科目一覧」に取得します。その式は、
・ Substitute(ValueListItems(Get(ファイル名); "科目の値一覧"); [¶;"、"])
>『これを下記のようにしたいです。 ・・・番号別集計リスト・・・』
前部小計パート(番号、科目一覧)とボデーパート(番号、科目)を配置した集計レイアウトで、
番号でソートを掛け、番号別集計結果を表示します。
Last edited by Hiro (2018-08-11 03:12:14)
Offline
> シリアルNo.を作成、番号で自己リレーション
シリアルNo.は全てのレコードでユニークな値ですよね?
とすると、
> If ( シリアルNo. = DB 2::シリアルNo. ; "オリジナル" ; "重複" )
オリジナルレコードを検索
この「オリジナル」
は同番号で一つのみになっちゃいますよ。
番号 & 科目 で一つのみ
ならリレーションを
番号
and
科目
で照合しないとダメでしょう。
さらに、
> ヘッダテーブルにインポートします。
> ヘッダデータを作成して、flag「0」とし、元のテーブルに戻して
こんな面倒なことをしないでも、別テーブルで
番号 & 科目
のフィールドを作り、
これを
ユニーク・常時
と制限をかけておけば、
インポート時にユニークになります。
また、
各科目を1行で表示するのは、
各番号ごとに各科目がユニークですから、
単にListで得られたリストを変更すればいいですね。
Offline
ありがとうございました!
出来ました!
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 507.96 KiB (Peak: 514.6 KiB) ]