過去の桐井戸端BBS (桐ver.9)
30572 2つの表を使用して条件選択による表引きを行いたい 佐藤 2005/07/21-16:23
教えて頂きたく、書き込みました。
OSはXP、桐9を使用しています。
項目計算式で、2つの表を使用し表引きしたいと考えております。
そのようなことはできるのでしょうか?
例:
[A][B][C][D]という項目があるC.TBL、
[D]という項目に[A]と別のA.TBL[A]が合えばA.TBLの[E]の
項目が入力され、[D]という項目に[A]と別のB.TBL[A]が合えばB.TBLの[E]の項目が入力されるということは
できないものでしょうか。
なお、A.TBLとB.TBL両方にC.TBLの[A]が入力されていることはないです。
どうかよろしくお願いします。
30573 Re:条件選択・表引き 宮城 2005/07/21-17:31
記事番号30572へのコメント
佐藤さん、こんにちは。

>[A][B][C][D]という項目があるC.TBL、
>[D]という項目に[A]と別のA.TBL[A]が合えばA.TBLの[E]の
>項目が入力され、[D]という項目に[A]と別のB.TBL[A]が合えばB.
>TBLの[E]の項目が入力されるということはできないものでしょうか。
>なお、A.TBLとB.TBL両方にC.TBLの[A]が入力されていることは
>ないです。

申し訳ありませんが、もう少し整理していただけませんでしょうか。
どうにも暑くって・・・。

ひょっとして、A.TBL、B.TBLってレコード1件ずつの表なんでしょうか?
 そうでなければ[A]にいろんな値を持った複数レコードの集合が表ですから、
C.TBLのあるレコードの「[A]が合」うと言われてもぴんとこないんですが。

30574 Re:条件選択・表引き アックン 2005/07/21-19:05
記事番号30572へのコメント
佐藤さん、こんにちは。
入力したい値が数値系か文字列か不明なので、式を2通り書いておきます。

さらに、数値系の方は、#条件選択を使った式と、使わない式(論理式)を2通り書いておきます。
速度が遅い機種だと、論理式が高速に感じるかもしれません。

・#条件選択を使った式
式1:数値系の場合
#cond( #set( 秒 , #tlu( [A],=,"test3A",[A],[E] ) ) , &秒 , 1 , #tlu([A],=,"test3B",[A],[E] ) )

 秒:&秒(組み込み変数 数値)
 #cond:#条件選択
 #set:#SET
 #tlu:#表引き

式2:文字列の場合
#cond( #set( STR , #tlu( [A],=,"test3A",[A],[E] ) ) , &STR , 1 , #tlu([A],=,"test3B",[A],[E] ) )

 STR:&STR(組み込み変数 文字列)

・#条件選択を使わない式(論理式)
式3:数値系の場合
#nvl( ( #set( 秒 , #tlu( [A],=,"test3A",[A],[E] ) ) ), 0 )+#nvl( ( #set( 分, #tlu( [A],=,"test3B",[A],[E] ) ) ) , 0 )

 #tlu:#未定義値変換

方法3は、
C.tbl[A]が未定義のとき、[D]の値が 0 になります。([D]が数値系の場合)

それでは、いろりお試してからご報告くださいね。
アックン(=^・^=)
30575 Re:条件選択・表引き アックン 2005/07/21-19:08
記事番号30574へのコメント
誤)"test3A"
正)"A"

誤)"test3B"
正)"B"

30576 Re:条件選択・表引き 宮城 2005/07/21-19:31
記事番号30573へのコメント
思うに、A.TBLとB.TBLって同じ表にできないのでしょうか?

[A][E]の対応関係を取るだけのためにたとえ別表構えることになってもすっきりすると思いますが。

(1対nの関係なんかないんですよね?)

30577 Re:条件選択・表引き 佐藤 2005/07/21-19:57
記事番号30572へのコメント

宮城さん・アックンさん早速回答していただきありがとうございます。
ちなみに、すべての項目は文字列です。
A.tblとB.tblは訳あって一緒に出来ないんです。(^_^;)
C.tblの[A]は名前で[D]は性別という項目で、
A.TBLには男のデータ、B.TBLには女のデータが入力されていまして、
C.TBLの[A]の名前で性別を判断したいと思い上記のような質問をしました。
よろしくお願いします

30578 Re:条件選択・表引き アックン 2005/07/21-20:17
記事番号30577へのコメント
佐藤さん>
文字列の場合は式2でいいので、項目名だけ変更して、試してください。

30579 いつか破綻しますよ 宮城 2005/07/21-23:32
記事番号30577へのコメント
あらぁ・・・。もう一回書いておきます。

> [A][E]の対応関係を取るだけのためにたとえ別表構えることになって
> もすっきりすると思いますが。

顧客DBか生徒DBかよくわかりませんが、将来の破綻を避けるためには、
名前以外のIDで管理する別表構えるべきですね。ご安全に。

30580 Re:条件選択・表引き 佐藤 2005/07/22-08:03
記事番号30572へのコメント
ありがとうございました。早速やってみます


戻る