0

基本的にテーブルを 2 つのリストに分割する where 句があります。すべてのフィールドが「完全」(-1 ではない) である 1 つのリストと、いずれかのフィールドが不完全なリスト。問題は、これらのフィールドの 1 つが null 可能であるだけでなく、別のフィールドが true の場合にのみ不完全としてカウントしたいことです。

Where 句:

//l and p are my two tables(This is in a join)
//passed in an option incompletes. If incompletes is true, give back incomplete values
where(
  //SHOW INCOMPLETES
  (
    p.attr1 === -1 or
    p.attr2 === -1 or
    p.attr3 === -1 or
    //only need to check attr4 if this var is true
    (p.attr4 === -1).inhibitWhen(!l.needToCheckAttr4) //I've also tried === Some(-1)
    ).inhibitWhen(!incompletes.isDefined) and
  // SHOW COMPLETES
  (
    p.price <> -1 and
    p.serverCost <> -1 and
    p.depreciation <> -1 and
    (p.attr4 <>  -1).inhibitWhen(!l.needToCheckAttr4)
    ).inhibitWhen(incompletes.isDefined)
  )

attr4 行は効果がないように見えますが、残りの条件はすべて正しく機能します。つまり、他の条件が true である限り、完了としてレンダリングされます。

編集:それは間違いなくinhibitWhenの呼び出しと関係があります。1 つの行 (l と p) で 2 つの異なるテーブルを使用すると何か問題がありますか?

4

1 に答える 1