Microsoft Access 掲示板

「クエリが複雑すぎます」を回避したい / 9

14 コメント
views
4 フォロー
9
ひんやり 2021/09/17 (金) 10:36:09 8be4a@c8e67 >> 6

クエリを考えるのに必死になりすぎて、NZの存在を忘れていました・・・。
ちょっと見直します。

あと、残業3が出るというのは残業と残業の間に中抜けがありそうですがどうなんでしょう?具体的なデータでほしい結果を考えてみてください

残業と残業の間で中抜けは発生しないと思われます。
分析してみましたが、残業開始から早朝帯や深夜帯に入ると残業3が入っているように見えます。

もう一つ、フレックスって時間休ないんですかね。扱い的には休日みたいに複数レコード発生とかしてそうですけど(データ処理的には問題ない)

時間休あります。
平日の普通の勤務と同じ、時間休開始、時間休終了で中抜けを判別しています。
フレックス専用で時間休を値が入るところはないです。

通報 ...
  • 10
    hiroton 2021/09/17 (金) 11:12:09 36d08@f966d >> 9

    NzはNullを判定するだけなんでIIf条件分岐でIsNull判定するのと同じですけどね。式が短く書けるだけです(大事)

    残業3は残業代の切り替わりをわかりやすくしてるだけかな?データ上では意味ないですが業務上ではよくある話ですかね

    休日2がある場合に中抜け扱いとすると、平日の時間休に申請があるとき、申請上の時間合計とデータ上の中抜けの時間合計が合わないってことになります。
    休日のデータには休日フラグを立てて、そのレコードは集計から省くようにすれば問題ないんですが、hiroton的には元データから存在しないような作りのほうが好きですね
    休日1と休日2の間には中抜けがあるけど休日2と休日3(2レコード目の休日1)の間には中抜けがないっていうのも混乱のもとですし

    ちょっと挙げたようにUNION使えばできないことでもないですが、ほしい結果次第ですかね。今回は使わなくてもよさそうでそのほうが高速そうでもあります。

    >> 8にイメージを出していますが、「休日2発生時は中抜け扱いをする」ならフィールドの位置をうまい具合に入れ替えるような条件判断を作ってあげればいいので考えてみてください