- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:勤務時間を修正して一覧を作成したいのですが・・)
修正勤務時間一覧の作成方法
このQ&Aのポイント
- 勤務時間を修正して一覧を作成したい。テーブルAとBを使用して、勤務時間を加算するレコードと加算されないレコードを含んだ修正勤務時間一覧を作成したい。
- テーブルAには日付、社員名、当日勤務地、勤務時間の情報があり、テーブルBには社員名、勤務地、識別子の情報がある。複数の勤務地を持つ社員について、テーブルBの識別子と一致する場合には勤務時間に0.5時間を加算する。
- クエリ「修正勤務時間一覧」で上記の条件に基づいてテーブルAとBを結合し、修正された勤務時間と元の勤務時間を含んだ一覧を作成したいが、作成できていない。SQLの知識が浅いため、ご指導をお願いしたい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SELECT テーブルA.社員名,テーブルA.当日勤務地,IIF(テーブルB.識別子 IS NULL,テーブルA.勤務時間,テーブルA.勤務時間+50) FROM テーブルA LEFT JOIN テーブルB ON (テーブルA.社員名 & テーブルA.当日勤務地) = テーブルB.識別子; でどうでしょうか。
その他の回答 (1)
- keirika
- ベストアンサー率42% (279/658)
回答No.2
NO1です。 まず、デザインビューの件ですが、デザインビューに切り替えた時に 出たメッセージにもあるように、テーブルA.社員名 & テーブルA.当日勤務地(結合式) がデザインビューでサポートされていない為です。 これはACCESSの仕様と言うことになります。 また、Expr1002の方ですが、こちらは関数や計算式を使ってフィールドを追加した場合に そのフィールドに対して名前をつけてあげないとACCESSが勝手に名前をつけます。 もし、名前を付ける場合は以下のようになります。 IIF(テーブルB.識別子 IS NULL,テーブルA.勤務時間,テーブルA.勤務時間+50) AS 勤務時間 拙い説明で分かりにくいとは思いますが、お役に立てれば幸いです。
質問者
お礼
お礼が遅くなり申し訳ありませんでした。 助かりました。 ありがとうございました。
お礼
お礼が遅くなってしまい申し訳ありませんでした。 うまく行きました!! 大変たすかりました。ありがとうございました。 また、宜しくおねがいします。
補足
ありがとうございます。 先ほどの記述で間違いがありました。 テーブルBも作成してありますが、 社員名:テキスト 勤務地:テキスト テーブルBクエリに 社員名:テキスト 勤務地:テキスト 識別子:社員名&勤務地 でした。 さっそく、クエリでSQLビューで仮名(クエリAB)に貼付けしてみました。 結果は成功しました。 しかし、デザインビューでは表示できないんですね... これは、なぜでしょうか? それと、Expr1002という列名に表示される結果となっています。 お願いですが、上記となるご説明を頂ければ幸いです。 たぶんSQLを詳しくしらないからかも知れませんが、何とか処理を上手くしたいのです。 ご協力をお願いできますでしょうか。。。。