No.2ベストアンサー
- 回答日時:
Salary テーブルの index がどうなってるかによります。
データ自体は、参考例に1,2行あればいいので、create 文の方を載せてほしかったですね。カラム区切りも解らなくなっていて、ほとんど載せる意味がない。
テーブルの意義から言って、Salaryテーブルでは、日付とEmployeeIDが決まれば、一行しか存在しないことが必要だと思いますが、もし、この2カラム連動でのunique index を貼っていなくて、同日に同一者に多重支払いしている行が存在するなら、Bと名付けたサブクエリ内でgroup by EmployeeID として、取得結果側カラムは sum(Amount) as Amount とする必要があるでしょう。
でも、現実の状況で、もし、同じ日付&同じEmployeeIDで複数行あったら、バグ扱いになりそ。
No.1
- 回答日時:
「その本の所持者だけに限る」でなければ
問題文を書いてみてください。
この回答への補足
ご返信有難うございます。
必要な情報を全て書くと長くなるので、所有している方限定と思いましたが、なるべく多くの方に回答していただきたいので書こうと思います。
<問題>テーブルEmployees、SalaryからEmployeeごとの'2007-02-25'支給のAmountを求めて、EmployeeName、Amount(別名は「支給額」)を表示しなさい。Amountデータが存在しない場合は0を表示しなさい。
<解答>
SELECT
A.EmployeeName
,(CASE
WHEN B.Amount IS NULL THEN 0
ELSE B.Amount
END) AS 支給額
FROM
Employees AS A
LEFT OUTER JOIN
(SELECT
EmployeeID
,Amount
FROM
Salary
WHERE
PayDate = '2007-02-25'
) AS B
ON A.EmployeeID = B.EmployeeID
;
<DB>
●Employeesテーブル
EMPLOYEEID EMPLOYEENAME HEIGHT EMAIL WEIGHT HIREFISCALYEAR BIRTHDAY BLOODTYPE
1シマゴロー168simagoro@nekoyasudo7219871956/10/1A
2ゴッチン161gochin@nekoyasudo6019871953/12/25B
3マキ子155maki@nekoyasudo5219871958/8/16O
4マル158maru@nekoyasudo4519871954/1/12AB
5ミチロー170michiro@nekoyasudo7019871965/2/14A
6チー173coo@nekoyasudo7619871964/9/15A
7サラ162sara@nekoyasudo5019881960/10/28A
8みなみ153minami@nekoyasudo4219881962/9/3O
9プリン148prin@nekoyasudo4819881968/3/14B
10ぴー子156pko@nekoyasudo5219881971/11/13O
11ごま180goma@nekoyasudo7819881971/4/15O
12ぱんだ185panda@nekoyasudo9519881971/6/1B
13猫丸172nekomaru@nekoyasudo8019891972/1/15B
14ニャン太178nyantaro@nekoyasudo5819891972/2/3B
15モンチー169monchi@nekoyasudo5519911973/5/6A
16ぴよ155piyo@nekoyasudo6219911973/7/14A
17ラスカル165rasukal@nekoyasudo5119921974/4/10AB
18くま190kuma@nekoyasudo11519921970/3/3O
19ゴン176gon@nekoyasudo7819931975/11/16O
20チー169q@nekoyasudo5619941976/5/25O
21太助164tasuke@nekoyasudo5019961978/10/3B
22トントン155tonton@nekoyasudo4519961978/12/25B
23マー158ma@nekoyasudo4419971979/4/3A
24サリー149sary@nekoyasudo3819991981/2/2A
25うさぎ161usa@nekoyasudo4319991981/8/8A
26うー太170uta@nekoyasudo6320011983/3/26A
27ローリー147roly@nekoyasudo4020031985/5/26A
28マイケル160mikel@nekoyasudo4920041986/6/30AB
29スー163su@nekoyasudo5220061988/9/8O
30ミーヤ168miya@nekoyasudo5120071989/7/7B
●Salaryテーブル
SALARYID PAYDATE AMOUNT EMPLOYEEID
12006/9/255800001
22006/9/254500002
32006/9/254100003
42006/9/253800004
52006/9/253500005
62006/9/253500006
72006/9/253300007
82006/9/253300008
92006/9/253200009
102006/9/2530000010
112006/9/2530000011
122006/9/2530000012
132006/9/2528000013
142006/9/2528000014
152006/9/2526000015
162006/9/2526000016
172006/9/2525000017
182006/9/2529000018
192006/9/2524000019
202006/9/2523000020
212006/9/2521000021
222006/9/2521000022
232006/9/2520000023
242006/9/2518000024
252006/9/2518000025
262006/9/2517500026
272006/9/2516500027
282006/9/2516000028
292006/9/2515000029
302006/10/245800001
312006/10/244500002
322006/10/244100003
332006/10/243800004
342006/10/243500005
352006/10/243500006
362006/10/243300007
372006/10/243300008
382006/10/243200009
392006/10/2430000010
402006/10/2430000011
412006/10/2430000012
422006/10/2428000013
432006/10/2428000014
442006/10/2426000015
452006/10/2426000016
462006/10/2425000017
472006/10/2429000018
482006/10/2424000019
492006/10/2423000020
502006/10/2421000021
512006/10/2421000022
522006/10/2420000023
532006/10/2418000024
542006/10/2418000025
552006/10/2417500026
562006/10/2416500027
572006/10/2416000028
582006/10/2415000029
592006/11/255800001
602006/11/254500002
612006/11/254100003
622006/11/253800004
632006/11/253500005
642006/11/253500006
652006/11/253300007
662006/11/253300008
672006/11/253200009
682006/11/2530000010
692006/11/2530000011
702006/11/2530000012
712006/11/2528000013
722006/11/2528000014
732006/11/2526000015
742006/11/2526000016
752006/11/2525000017
762006/11/2529000018
772006/11/2524000019
(以下 353行目まで続く・・・
以上です。文字数制限の都合上省略になりますが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- 面接・履歴書・職務経歴書 自己の特徴の添削 2 2022/03/23 12:32
- システム科学 疑問があるので答えてくれると嬉しいです。 中学2年です。 日本の科学技術力は 9〜7位 くらいと京都 3 2022/08/25 16:46
- IT・エンジニアリング ITエンジニアの勉強時間や勉強方法について 初めまして閲覧いただきありがとうございます。 当方25歳 4 2022/06/09 18:51
- 書類選考・エントリーシート 志望理由のアドバイスお願いします!! 1 2022/09/23 11:53
- 社会学 社会の授業でグローバル化少子高齢化など環境問題、社会問題を勉強した際、 これから先どう行った未来に向 2 2022/08/15 18:19
- 数学 ファジィ理論について教えてください 2 2022/07/12 16:01
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- 図書館情報学 著作権について(再質問で申し訳ありません) 1 2022/09/16 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
SQLで、Join句で結合したテ...
-
PRIMARY KEYのコピー
-
DB2のSQLコマンドについて
-
Access 別のDBに対してDlookup...
-
timestampのデータはどのように...
-
PostgreSQLのtimestamp型で時間...
-
データ削除とSQL*Loaderでのイ...
-
T-SQLで任意の箇所で強制終了す...
-
結合したテーブルをSUMしたい
-
Accessで最新のレコード...
-
JDBCを使ってdate型へのINSERT...
-
オラクルのUPDATEで複数テーブル
-
エラーを起こす方法
-
複数の条件に該当する結果を、...
-
1行のSQL文を改行するツール
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
sqlite select 表示されない
-
カラム名を変更するには
-
OracleのLONG型への insert に...
-
SQL ServerのINNER JOINについて
-
技術評論社 SQL書き方ドリルの...
-
【SQL】同値のレコードがある場...
-
最強のブログサイト作成ツールとは
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessで今日から5日後
-
truncate tableを使って複数の...
-
timestampのデータはどのように...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
PostgreSQLのtimestamp型で時間...
-
エラーを起こす方法
おすすめ情報