質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

562閲覧

Access 対象以外は掛け算をする

MTkooo

総合スコア8

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/04/20 05:45

Accessで給与の計算をしたいのですが、条件があり困っています。

名前 |部署 | 基本給 |残業(*1.25)|
〇〇 |営業 | ¥1000 |    ¥1250|
△△ |製造 | ¥1000 |    ¥1250|
☆☆ |営業 | ¥1000 |    ¥1250|
◇◇ |部長 | ¥1000 |    ¥1000|

上のようなクエリを作成したいです。
基本給までは特に問題ないのですが、部署が部長の場合のみ残業の「×1.25」を外したいです。
クエリの抽出条件で <>”部長” としてしまうと、表示されなくなり、この後のクロス集計ができなくなってしまいます。

クロス集計以下のように、部署ごとでまとめたいと思っています。

部署名| 合計
営業 | 2500
製造 | 1250
部長 | 1000

SQLは私が作成したものではないですが、念のため貼らせていただきます

SELECT T作業員テーブル.作業員CD, T作業員テーブル.氏名, T作業員テーブル.[フリガナ], T作業員テーブル.部署CD, T部署CD.部署名, T作業員テーブル.単価, [単価]*1.25 AS 式1, Int([式1]+0.9) AS 早出・残業, [単価]*1.5 AS 式2, Int([式2]+0.9) AS 深夜, [単価]*1.25 AS 式3, Int([式3]+0.9) AS 休日 FROM T部署CD INNER JOIN T作業員テーブル ON T部署CD.部署CD = T作業員テーブル.部署CD ORDER BY T作業員テーブル.作業員CD;

クロス集計で部長の金額が正しく表示できていれば、解決します。
勉強不足ですが、ご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

IIf()を使用して部長なら単価をそのまま使うようにすれば良いかと思います。

SQL

1SELECT T作業員テーブル.作業員CD 2 , T作業員テーブル.氏名 3 , T作業員テーブル.[フリガナ] 4 , T作業員テーブル.部署CD 5 , T部署CD.部署名 6 , T作業員テーブル.単価 7 , [単価]*1.25 AS1 8 9 , IIf(T部署CD.部署名='部長', [単価], Int([1]+0.9)) AS 早出・残業 10 11 , [単価]*1.5 AS2 12 , Int([2]+0.9) AS 深夜 13 , [単価]*1.25 AS3 14 , Int([3]+0.9) AS 休日 15FROM T部署CD INNER JOIN T作業員テーブル 16 ON T部署CD.部署CD = T作業員テーブル.部署CD 17ORDER BY T作業員テーブル.作業員CD;

投稿2021/04/20 06:19

sazi

総合スコア25206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MTkooo

2021/04/20 06:29

いつもありがとうございます!!!! できました~!! 助けられてばかりで申し訳ないです;; ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問