CommCareのルックアップテーブルを使用して、特定の質問に最も近い(等しいまたはより小さい)値をルックアップすることは可能ですか?
例:
テーブルの値は5、6.35、42.8、136です。6を入力すると5が返され、6.35が6.35を返すようになり、48が42.8を返し、135が42.8を返します。
この効果を得るには、フィルターで<=
をmax
と組み合わせて使用できると思います。
Xpathは次のようになります
max(instance('myentrys')/myentry_list/myentry[value <= target_value]/value)
これにより、target_value
未満の最大値が得られます。必要なのが、その値を持つテーブル内の行全体である場合、その値でルックアップを実行できます。 target_value
より小さい最大値である値を持つ行を見つけます。
instance('myentrys')/myentry_list/myentry/value[value =
max(instance('myentrys')/myentry_list/myentry[value <= target_value]/value)]