Microsoft Access 掲示板

条件付きのクエリ作成について / 9

15 コメント
views
9
  • パターンCDの番号は5種類で固定
  • パターンCD毎のデータ件数は3で固定
  • 資格パターン テーブルにおける 資格CD 列の値は重複が発生しない

という要件を全て満たす場合は、以下のSQLでもご希望の結果になりそうですね

SELECT x.作業員CD
     , Sum(x.金額)
           + IIf(sum(IIF(y.パターンCD = 1, 1, 0 )) = 3, 400, 0)
           + IIf(sum(IIF(y.パターンCD = 2, 1, 0 )) = 3, 400, 0)
           + IIf(sum(IIF(y.パターンCD = 3, 1, 0 )) = 3, 400, 0)
           + IIf(sum(IIF(y.パターンCD = 4, 1, 0 )) = 3, 400, 0)
           + IIf(sum(IIF(y.パターンCD = 5, 1, 0 )) = 3, 400, 0) As 金額
FROM 作業員所持資格 x
LEFT JOIN 資格パターン y
       ON x.資格CD = y.資格CD
GROUP BY x.作業員CD
;
通報 ...
  • 10

    この固定条件ならこちらの方が私のよりシンプルでいいですね。

    mayuさんの最初のSQLだと、パターン数やパターン内件数が固定でなくても対応できるのでより対応範囲が広いですね。

  • 14
    しおこんぶ 2025/01/22 (水) 09:31:14 a6738@80964 >> 9

    たくさんの解答ありがとうございます。
    Accessの可能性って無限大ですね。

    昨日hatenaさんの式でうまく作動しました。
    ただ、リレーションシップで詰まってしまい、返信が遅くなってしましました。
    hatenaさんの解答とても分かりやすかったです。ありがとうございます。

    mayuさん。私がSQLってだけで苦手意識あったのですが、
    mayuさんのSQLは初心者のとても見やすく感動しました。
    私がSQLは全く知識ないので、これから参考に勉強させていただきますね。
    一緒に考えてくださり本当にありがとうございます。

    まだ完結してませんが、お陰様で求めている結果が表示できました。
    本当にありがとうございます。