私はSQLを使い慣れていないので、ほとんどの場合Rを使用します。しかし、私はこれをSQLで実現しています。
私はMS SQLのテーブルを持っています。それぞれの行は、 'A'、 'B'または 'C'の値を持つ 'Activity Type'です。合計40列あり、データが正しい場合はすべての行をチェックする必要があります。下の小さな例では列がほとんどありません。
アクティビティー・タイプが 'A'の場合、MonitorA_
のすべての列に値を設定する必要があります。その他はすべてNULLにする必要があります。アクティビティの種類が 'B'の場合、すべてのMonitorB_列に値があり、残りのすべてがNULLである必要があります。
次の例では、行1と行2は問題ありません。しかし、行3と行4には問題があります。これは行3にあり、アクティビティタイプは 'B'ですが、 'MonitorC_ID'列に値があります。
テストに合格したかどうかによって、TrueまたはFalseの値を持つ新しい列を作成できます。別の列の値に基づいて新しい列を作成する
| Activity Type | MonitorA_ID | MonitorA_Date | MonitorA_Region | MonitorB_ID | MonitorB_Date | MonitorB_Region | MonitorC_ID | MonitorC_Date | MonitorC_Region |
|---------------|-------------|---------------|-----------------|-------------|---------------|-----------------|-------------|---------------|-----------------|
| B | NULL | NULL | NULL | 1 | 21/10/1985 | Brisbane | NULL | NULL | NULL |
| A | 45 | 25/03/1986 | Gold Coast | NULL | NULL | NULL | NULL | NULL | NULL |
| B | NULL | NULL | NULL | 67 | 13/03/1959 | Dubai | 45 | NULL | NULL |
| C | NULL | 13/08/1964 | NULL | NULL | NULL | NULL | 82 | 13/08/1964 | Dubai |
ありがとうございました。私は今あなたのロジックを試してみる。 – MaxPD
IFの代わりに1つの条件付きのcase文を使用しています... – Dresden
これは機能しました。論理が働いた。私は、A、B、Cの3つの異なる変数を作成しませんでした。むしろ1つの長い入れ子になったCASE文です。 J Greeneありがとう!神のお恵みがありますように! – MaxPD