過去の桐井戸端BBS (桐ver.7) |
2514 | 商品マスタの中から一番安い価格を表引きしたい | さくら | 1999/8/26-17:12 |
桐初心者です。いつも勉強させていただいています。 桐7を使っているのですが、つまずいてしまいました。 どなたか、よきアドバイスを宜しくお願いします。 使用する表と項目 1 販売.TBL 顧客名 商品名(型番含む) 定価 仕切価格 仕入先・・・・ 2.商品マスター.TBL 商品名 型番 定価 仕入先A 仕切価格(A) 仕入先B 仕切価格(B)・・・ やりたい事 「販売.TBL」のデータ入力に「商品マスター.TBL」のレコードを使用したいのです が、その際に下記のような条件があるのです。 1.商品名・・・商品名/型番を一つの項目にしたい 2.定価 3.仕切価格・・全仕入先の価格を比較し一番安い金額のデータにしたい 4.仕入先・・・3の仕切価格(安い)の会社名にしたい 超初心者な質問&わかりにくかったらごめんなさい。 お返事待ってます。 | |||
2515 | Re: | 宮城 | 1999/8/26-18:43 |
記事番号2514へのコメント いくつか疑問点がありますが・・・。 >1.商品名・・・商品名/型番を一つの項目にしたい まず、型番・商品名はユニークなんでしょうね? 型番から商品名をひかせた ほうが賢明な気がしますが、2項目をつなぎたいというだけでしたら、 [型番]+[商品名]として置換すればOKです。 次は商品マスターを次のように並べ替えます。以後、型番だけで説明します。 [型番]文字符号順(文字列ですよね?)、[仕切価格]昇順 そして、[型番]で絞り込み→単一化を行います。同一型番の先頭のレコード (=もっとも[仕切価格]が安い)ものだけに絞り込まれますので、この状態で 販売.TBLを商品マスターで併合→置換を行います。 もちろん、[型番]で照合、[仕切価格][仕入先]を複写にします。 これでいかがでしょうか。 | |||
2524 | Re: | さくら | 1999/8/27-11:05 |
記事番号2515へのコメント 宮城さん早速のお返事に感激!ありがとうございます。 私の書き方がまずかったみたいです。ごめんなさい。 >>1.商品名・・・商品名/型番を一つの項目にしたい >まず、型番・商品名はユニークなんでしょうね? はい(笑)。本来の型番の後に独自の判別記号が付いている場合が有ります。 また、やっかいな事に商品データ自体は私が入力するわけではないので、 どれに付いているのかは神のみぞ知る・・・・状態です。 >型番から商品名をひかせたほうが賢明な気がしますが・・・・ そう思うのですが、どこにどうすればよいのかがさっぱりわかりません。とほほ・・ >次は商品マスターを次のように並べ替えます。以後、型番だけで説明します。 >[型番]文字符号順(文字列ですよね?)、[仕切価格]昇順 >そして、[型番]で絞り込み→単一化を行います。同一型番の先頭のレコード >(=もっとも[仕切価格]が安い)ものだけに絞り込まれますので、この状態で >販売.TBLを商品マスターで併合→置換を行います。 >もちろん、[型番]で照合、[仕切価格][仕入先]を複写にします。 「商品マスター」の作りは、型番に対してずらーっと横にのびているんです。 ですから、[A社の仕切価格]と、[B社の仕切価格]も横に並んでいます。 つまりどちらも項目なわけです。「項目を比較して、安い方を判断させなおかつその 価格はどの会社のものか」を販売.TBLに反映させたいんですが・・・。 何かよい方法はないでしょうか?項目どうしの比較なんて、無理なんですか? ご存じの方宜しくお願いします。 | |||
2529 | Re: | 宮城 | 1999/8/27-13:27 |
記事番号2524へのコメント >はい(笑)。本来の型番の後に独自の判別記号が付いている場合が有ります。 >また、やっかいな事に商品データ自体は私が入力するわけではないので、 >どれに付いているのかは神のみぞ知る・・・・状態です。 おろ、ここが一番大事なんですよ。レコード・行どちらでもわかりやすい用語で 考えてもらえればいいんですけど、それを特定するkeyがあやふやであれば、ど うにもなりません。[商品名]が型番と品名をカンマつなぎで入力されている場合、 0001,テレビ 0001,てれび 0001,テレビ これらは立派な別物です。一字一句違えば、パソコンはアンマッチと扱います。 さらにはスペースがついているかいないかでも。 かような場合は、まず型番の整理から入ります。4桁の半角数字であるが、全角 の場合もあり文字列と仮定します。 #半角(#部分列([商品名],1,4)) 先頭から4文字取り出し、半角化する操作をまとめて記述したものです。わかり ますよね。これで型番はすべて 0001になります。 商品名は別途なんとかマスターという表をつくってそこから項目計算で引かせま す。 表:なんとかマスター [型番][商品名] 0001 テレビ #表引き([型番],=,"なんとかマスター",[型番],[商品名]) いろんなやりかたがありますが、keyだけはしっかり保証して下さい。でないと、 なにやっても無駄です。「入力した人が悪い」 そのいいわけはたぶん通りませ んでしょう。少なくとも、私はしません。 さて、お次は商品マスターのデータ構造ですが、ちと首をひねります。横にずら っと持っているなら、入力時、最も安い1件を選んで入れればいいだけのこと。 まあ、それは置いておいて、であれば構造を変えてしまいます。3件持っている と仮定します。 [型番][仕入先1][仕切価格1][仕入先2][仕切価格2][仕入先3][仕切価格3] 新商品マスターを定義して下さい。 [型番][仕入先][仕切値] これに商品マスターを3回読み込みます。 1回目:読み込み 表,"商品マスター"¥ ,{[型番] [型番]¥ ,[仕入先] [仕入先1]¥ ,[仕切価格][仕切価格1]¥ } 2回目:読み込み 表,"商品マスター"¥ ,{[型番] [型番]¥ ,[仕入先] [仕入先2]¥ ,[仕切価格][仕切価格2]¥ } 3回目:読み込み 表,"商品マスター"¥ ,{[型番] [型番]¥ ,[仕入先] [仕入先3]¥ ,[仕切価格][仕切価格3]¥ } これで私の想定していた構造になります。 変数を定義し、仕切価格1から3まで比較しより安ければ変数を当該仕切価格で置 き換えてもいいんですけど、こちらのほうが簡単でしょう。 | |||
2530 | Re: | 宮城 | 1999/8/27-13:54 |
記事番号2529へのコメント >新商品マスターを定義して下さい。 > >[型番][仕入先][仕切値] [仕切値]は[仕切価格]のミスです。 ついでにもう一つ。既存マスターに項目追加する手も。 [採用仕入先][採用仕切価格] 項目計算で次のように定義します。 [採用仕切価格] #横最小2([仕切価格1],[仕切価格2],[仕切価格3]) [採用仕入先] #条件選択([採用仕切価格]=[仕切価格1],[仕入先1]¥ ,[採用仕切価格]=[仕切価格2],[仕入先2]¥ ,1,[仕入先3]) あまりお薦めはしませんが、こういうこともできます。当然、[採用仕入先] [採用仕切価格]で併合します。 | |||
2555 | ありがとうございました | さくら | 1999/8/31-11:39 |
記事番号2530へのコメント 週末休んでたもんで、お礼が遅くなってごめんなさい。 [採用仕切価格] #横最小2([仕切価格1],[仕切価格2],[仕切価格3]) [採用仕入先] #条件選択([採用仕切価格]=[仕切価格1],[仕入先1]¥ ,[採用仕切価格]=[仕切価格2],[仕入先2]¥ ,1,[仕入先3]) この式には、本当に感動しました。的確かつ丁寧なご説明ありがとうございました 。これで、何とか、一歩前進です。またちょくちょく寄せていただくと思いますが 、宜しくお願いします。 |