テーブルにこのようなマトリックスがあります。
社員ID, 項目A, 項目B, ・・・,項目H
AAA 1 0 0
BBB 0 0.5 0
CCC 0 0 0
※1レコード中、どこか箇所の項目に数字が入っているか、0もしくはNull
※1レコード中に、数字があるのは1項目に限る
これを単純に演算フィールドを加え
社員ID, 項目合計, 該当フィールド
AAA 1 項目A
BBB 0.5 項目B
CCC 0
項目合計は、各フィールドを単純加算(Nz関数で変換)することで対応していますが、
項目フィールドをどのように取得したらよいか相談させてください。
piublic function getItemName() as String
これを演算子フィールドにするというアイデアはありますが、
テーブルを総当たりで項目数を取得するのは効率が悪すぎるかなと思っています。
end if
テーブル構造が正規化されていないので、データベースで処理するには非効率的になります。まずは、正規化してから処理すべきだと思います。
このままでするなら、演算フィールドの式を下記のようにすることになります。
正規化すれば集計クエリで簡単にかつ高速にご希望の結果が得られます。
hatena様
なるほどです。こんなやり方、思いつきませんでした。
ありがとうございます。