みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
料理DBと材料DBのテーブルがあります。
材料DBのレコード順を料理DBの材料名順にソートしたいと希望があるのですが、そのような事は可能でしょうか。
レコード数は同じです。
料理DB
料理No 商品名 材料名
121 カレー 牛肉
122 カレー 牛肉
123 カレー 牛肉
124 寿司 マグロ
125 寿司 マグロ
126 餃子 豚肉
材料DB(ソート前)
材料No 材料名
501 マグロ
502 牛肉
503 マグロ
504 豚肉
505 牛肉
506 牛肉
(料理DBの材料名順にソート後)
材料No 材料名
502 牛肉
505 牛肉
506 牛肉
501 マグロ
503 マグロ
504 豚肉
FMとGoのバージョンは12です。
お願いいたします。
材料名順にソートしたい、だったら材料名でソートすればいいです。
実際は料理No順にソートじゃないですか?
例の通りだとすると、同じ材料名の料理が複数あるんで無理かもしれない。
材料名順にソートしたい、だったら材料名でソートすればいいです。
実際は料理No順にソートじゃないですか?
例の通りだとすると、同じ材料名の料理が複数あるんで無理かもしれない。
例の通り(料理DBの材料名順にソート後)が必要です。
難しいのでしょうか?
各材料がどの料理に属するかの情報があるのでは。
料理の1行目がマグロだったらどうしますか。
ソートしたい値をルックアップすればできると思います。
挙げられた例の通りを条件に、、
材料DBと料理DBを材料名でリレーション
材料DBで順位用のフィールドを作り、料理DB::料理NOをルックアップ。
このフィールドでソートすればご希望の並び順になりますね。
しかし、
両方のレコード数が同じとなっていますが、
そうならひとつのテーブルで良さそうですが。。
Offline
ルックアップ後ソートすると数が合わないので調べると、料理DBに同じ材料が繰り返し出てくる事が分かりました。
テーブルを分けたのはEXCELをインポートしているのでやり易いと思ったためです。
材料DBのレコード順を料理DBの材料名順にソートできるのであれば、ひとつのテーブルにしてもかまいません。
宜しくお願いします。
料理DBと材料DBのテーブルがあります。
材料DBのレコード順を料理DBの材料名順にソートしたいです。
レコード数は同じです。
料理DB
料理No 商品名 材料名
121 カレー 牛肉
122 カレー 牛肉
123 カレー 牛肉
124 寿司 マグロ
125 寿司 マグロ
126 餃子 豚肉
127 さしみ マグロ
128 すき焼 牛肉
129 いため 豚肉
材料DB(ソート前)
材料No 材料名
501 マグロ
502 牛肉
503 マグロ
504 豚肉
505 牛肉
506 牛肉
507 豚肉
508 マグロ
509 牛肉
(料理DBの材料名順にソート後)
材料No 材料名
502 牛肉
505 牛肉
506 牛肉
501 マグロ
503 マグロ
504 豚肉
508 マグロ
509 牛肉
507 豚肉
以上
やはりそう言うのが有りましたか。。
そう思って、
例の通りと条件を付けたんですが、
書かれた通りだと、
牛肉1
牛肉2
牛肉3
のような、材料に順番を付けたフィールドを両方のテーブルに作り、
それでリレーションして、料理NOをルックアップ、それでソート。
で出来ますね。
> 材料DBのレコード順を料理DBの材料名順にソートできるのであれば、ひとつのテーブルにしてもかまいません
ひとつにするのなら、料理DBだけにするでしょう。
Offline
たぶん例が悪いんで、普通は1つの料理に複数の材料があるものだと思うんですが。
やはりそう言うのが有りましたか。。
そう思って、
例の通りと条件を付けたんですが、
書かれた通りだと、牛肉1
牛肉2
牛肉3
のような、材料に順番を付けたフィールドを両方のテーブルに作り、
それでリレーションして、料理NOをルックアップ、それでソート。で出来ますね。
> 材料DBのレコード順を料理DBの材料名順にソートできるのであれば、ひとつのテーブルにしてもかまいません
ひとつにするのなら、料理DBだけにするでしょう。
牛肉1
牛肉2
牛肉3
を付けるのに計算式などでできるでしょうか。
毎朝EXCELから料理と材料に各500レコード分を取り込んでおります。
毎日の事なので手間がかかるので。
例題が悪くて申し訳ありません。
今回は材料名1フィールドのみです。
宜しくお願いします。
材料DBで自己リレーション
材料名 = 材料名
and
材料No >= 材料No
として、
計算フィールド
材料名 & Count ( 自己リレーション:: 材料名 )
で求められます。
料理DBでも同様の考え方でいいのですが、
計算フィールドとすると、索引非保存となり、関連側の照合フィールドと出来ません。
全置換等での入力を考えてください。
インポートからソートまでの一連の作業はスクリプトにしてボタンクリック1回で完了できます。
やっぱり1テーブルがお薦めです。。
Offline
材料DBで自己リレーション
材料名 = 材料名
and
材料No >= 材料No
として、
計算フィールド
材料名 & Count ( 自己リレーション:: 材料名 )
で求められます。料理DBでも同様の考え方でいいのですが、
計算フィールドとすると、索引非保存となり、関連側の照合フィールドと出来ません。
全置換等での入力を考えてください。インポートからソートまでの一連の作業はスクリプトにしてボタンクリック1回で完了できます。
やっぱり1テーブルがお薦めです。。
牛肉1
牛肉2
牛肉3
になりません。
牛肉3
牛肉3
牛肉3
と材料名の合計数になります。
料理DBも同じですが、どこが間違っているのでしょうか。
それと全置換等の入力が分かりません。
1テーブルがお薦めとのことですが、この作業が簡単になるのでしょうか。
料理DBに材料DBのフィールドを追加し、料理と材料は別レコードで良いのでしょうか。
宜しくお願いします。
自己リレーションが
材料DBで自己リレーション
材料名 = 材料名
and
材料No >= 材料No
こうなっていますか?
インポート元のファイル、
テーブル構成等分らないので何とも言えませんが、
例を見る限り、
現在の料理DBに材料Noフィールドを加えればいいことになりますよね。
Offline
自己リレーションが
材料DBで自己リレーション
材料名 = 材料名
and
材料No >= 材料Noこうなっていますか?
インポート元のファイル、
テーブル構成等分らないので何とも言えませんが、
例を見る限り、
現在の料理DBに材料Noフィールドを加えればいいことになりますよね。
自己リレーションは材料DBのテーブルをコピーし左に材料DB、右に材料DB2を置き
材料名 = 材料名
and
材料No >= 材料No
としています。
材料順番は 計算で 材料名&"_"&Count(材料DB2::材料名) としています。
材料名は計算で Middle(〇〇:11;12) で値を作成していますが、これが影響しているのでしょうか?
設定に間違いはなさそうですが、、
試しに、
材料DBのレイアウトに材料DB2のポータルを置いてみて、
照合に間違いが無いか確かめてみたらいかがでしょう。
レコード自身と、レコード自身より材料Noが小さいレコードが表示されていなければなりません。
Offline
設定に間違いはなさそうですが、、
試しに、
材料DBのレイアウトに材料DB2のポータルを置いてみて、
照合に間違いが無いか確かめてみたらいかがでしょう。レコード自身と、レコード自身より材料Noが小さいレコードが表示されていなければなりません。
こちらの内容が理解できず、再度DBのサンプルを作成し確認しました。
結果、材料DBは順位付ができましたが、料理DBは駄目でした。
この原因はなんでしょうか。
何度も申し訳ありません。
1.料理DBと材料DBは材料名でリレーション
2.材料DB
自己リレーションし
材料DBと材料DB2
材料名 = 材料名
AND
材料No >= 材料No
501 マグロ マグロ1
502 牛肉 牛肉1
503 マグロ マグロ2
504 豚肉 豚肉1
505 牛肉 牛肉2
506 牛肉 牛肉3
3.料理DB
自己リレーションし
料理DB2と料理DB
材料名 = 材料名
AND
材料No <= 材料No
121 カレー 牛肉3
122 カレー 牛肉3
123 カレー 牛肉3
124 寿司 マグロ2
125 寿司 マグロ2
126 餃子 豚肉1
1.料理DBと材料DBは材料名でリレーション
ここでは特に必要ないですね
3.料理DB
自己リレーションし
料理DB2と料理DB
材料名 = 材料名
AND
材料No <= 材料No
料理DBに料理Noが有るのですか?
リレーションを考える時、
常に左を照合する側、右を関連側
リレーションシップグラフでも、ここでの説明でもそう統一することをお勧めしますよ。
逆にすると混乱の元です。
Offline
料理DBの材料名順に材料DBの材料を並び替えしたいので料理DBに材料順位Noが必要と思っていました。
当然ですが、どちらも各材料名と数が同じで、毎日500レコード発生します。
料理DB
料理No 商品名 材料名
121 カレー 牛肉
122 カレー 牛肉
123 カレー 牛肉
124 寿司 マグロ
125 寿司 マグロ
126 餃子 豚肉
127 さしみ マグロ
128 すき焼 牛肉
129 いため 豚肉
材料DB・・・EXCELからインポートした時点ではバラバラです
材料No 材料名
501 マグロ
502 牛肉
503 マグロ
504 豚肉
505 牛肉
506 牛肉
507 豚肉
508 マグロ
509 牛肉
材料DB・・・料理DBの材料順に並び替え(希望する順番です)
材料No 材料名
502 牛肉
505 牛肉
506 牛肉
501 マグロ
503 マグロ
504 豚肉
508 マグロ
509 牛肉
507 豚肉
料理DBで料理No順に並んでいる材料名順に、
材料DBのレコードを並び替えたい。
ですから、
材料DBで同じ材料名の料理DB::料理Noを得て、それでソート
を目的としています。
その方法は私の前記の通りです。
Offline
料理DBで料理No順に並んでいる材料名順に、
材料DBのレコードを並び替えたい。ですから、
材料DBで同じ材料名の料理DB::料理Noを得て、それでソート
を目的としています。その方法は私の前記の通りです。
チポ様
大変申し訳ありませんがDBのサンプルを作成頂けないでしょうか。
初心者の私には理解できなくてどうして良いのか分からない状態になりました。
メールでのやり取りは難しいですね。
サンプルを通して勉強したいと思います。
勝手なお願いですが宜しくお願い致します。
申し訳ないですね、
私はここでのファイルのアップ、ダウンはしないことに決めています。
どなたかがしていただければいいのですが・・
材料DBでのリレーション設定が出来たのですから、
料理DBでも同じ様に設定すればいいことですよ。
Offline
全然違う方法
両方とも材料名(と必要ならNo)でソートする
材料DB::料理Noに料理DB::料理Noをインポート(対象レコードを置き換え)
料理Noでソートする
全然違う方法
両方とも材料名(と必要ならNo)でソートする
材料DB::料理Noに料理DB::料理Noをインポート(対象レコードを置き換え)
料理Noでソートする
有難うございます。
希望は料理DBの材料名のそのままの順番に材料DBをソートする方法です。
料理DBの順番が基準になるので、両方ソートは良くないと思うのですが。
チポ様、理解不足で申し訳ありません。
手作業で行うと希望通りできるようになりましたが、ご説明頂いたのは、この様な内容でしょうか。
改めて一つづつお伺いいたします。
1.料理DBに順位フィールドを作成、材料DBに順位とインポート料理Noフィールドを作成。
2.順位を下記のように入力
料理DB
料理No 商品名 材料名 順位
121 カレー 牛肉 牛肉1
122 カレー 牛肉 牛肉2
123 カレー 牛肉 牛肉3
124 寿司 マグロ マグロ1
125 寿司 マグロ マグロ2
126 餃子 豚肉 豚肉1
材料DB
材料No 材料名 順位 インポート料理No
501 マグロ マグロ1
502 牛肉 牛肉1
503 マグロ マグロ2
504 豚肉 豚肉1
505 牛肉 牛肉2
506 牛肉 牛肉3
3.材料DBで対象レコード内で一致するレコードを更新で料理DBからインポート
順位 = 順位
料理No ⇒ インポート料理No
4.インポート料理Noでソート
これで料理DBの材料名と順番が揃いました。
材料No 材料名 順位 インポート料理No
502 牛肉 牛肉1 121
505 牛肉 牛肉2 122
506 牛肉 牛肉3 123
501 マグロ マグロ1 124
503 マグロ マグロ2 125
504 豚肉 豚肉1 126
追加情報です。
料理DBの順位入力も計算で下記のようにできるようになりました。
修正したのは自己リレーションです。
材料名 = 材料名
and
料理No >= 料理No ⇒ 材料Noを変更しました
料理DB
料理No 商品名 材料名 順位
121 カレー 牛肉 牛肉1
122 カレー 牛肉 牛肉2
123 カレー 牛肉 牛肉3
124 寿司 マグロ マグロ1
125 寿司 マグロ マグロ2
126 餃子 豚肉 豚肉1
希望は料理DBの材料名のそのままの順番に材料DBをソートする方法です。
料理DBの順番が基準になるので、両方ソートは良くないと思うのですが。
「そのまま」というのは料理Noの順ですよね。別の材料の順番は関係ないんで、材料名でソートすれば、各材料内では今やってるリレーションでの番号と同じ順に並びます。
料理Noが入力順と違う場合に、確実にソートするには、材料名と料理Noでソートです。
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 589.53 KiB (Peak: 626.07 KiB) ]