2 返信 最新の回答 日時: Mar 24, 2010 5:53 PM ユーザー:hassy

    関数内での数値の範囲指定

    hassy

      タイトル

      関数内での数値の範囲指定

      フォーラムに投稿

      既出だったらすみません。

      Case関数やIf関数でデータの抽出を行いたいのですが、条件に数値の範囲指定をしたいのですが、やり方があるでしょうか?

       

      例えば リレーションを組んでいるフィールドAの数値によってフィールドAAに以下のようなテーブルXの各フィールド値を返す

       フィールドAの数値が"1"から"9"までの場合、別テーブルのフィールドBの値をフィールドAAに返し

       フィールドAの数値が"10"から"19"までの場合、別テーブルのフィールドCの値をフィールドAAに返し

       フィールドAの数値が"20"から"99"までの場合、別テーブルのフィールドDの値をフィールドAAに返す

       

      条件を99通りCase関数で作れば出来るのでしょうが、もっと条件が増えた場合には不可能なので別の方法を探しています。

      Case(フィールドA="1"..."9";Getfield("テーブルX::フィールドB");フィールドA="10"..."19";Getfield("テーブルX::フィールドC");フィールドA="20"..."99";Getfield("テーブルX::フィールドD");" - ")でやると

      「この式は、計算できませんでした」となってしまいます。

       

      別の方法があるのでしょうか?

      よろしくお願いします。

        • 1. Re: 関数内での数値の範囲指定
          tella
            

          hassyさんこんにちは

           

          範囲指定であれば<>を使えば簡単です。

           

          例えば

          Case(

          フィールドA>=1 and フィールドA<=10;テーブルX::フィールドB;

          フィールドA>=11 and フィールドA<=19;テーブルX::フィールドC;

          フィールドA>=20 and フィールドA<=99;テーブルX::フィールドD;

          "-")

           

          こんな感じでやってみてはどうですかね。

           

          これで計算を行っているテーブルとテーブルXがちゃんとリレーションで結ばれていれば問題ないはずです。

           

          ご参考までに。 

           

          • 2. Re: 関数内での数値の範囲指定
            hassy
              

            tellaさん はじめまして

             

            andでつなげれば良かったのですね。全然知りませんでした。

            言われたように関数を組んだところ無事指定範囲を参照してくれるようになりました。

             

            ありがとうございました。