この記事を読むのに必要な時間:およそ 2 分
このページでは「WEB+DB PRESS Vol.64」に関する補足情報を公開しています。
サンプルファイルのダウンロード
特集2「JavaScript最前線」
- 第1章「Node.jsで作るWebアプリケーション入門」で使用されたソースコード
- 第2章「CoffeeScript入門」で使用されたソースコード
特集3「作って学ぶ日本語入力」
連載
- 「Perl Hackers Hub」で使用されたソースコード
- 「再考するJava」で使用されたソースコード
- 「モテモテPHP~違いがわかる、本質が見える」で使用されたソースコード
- 「JavaScriptベストプラクティスラボ」で使用されたソースコード
- 「Rubyわくわくナビ」で使用されたソースコードはこちら(github)で公開しています。
- 「いまどきの.NET開発」で使用されたソースコード
- 「スマートフォン開発倶楽部」で使用されたソースコード
お詫びと訂正
特集3「作って学ぶ日本語入力」第3章「変換速度と変換精度の向上」
P.116 図3
誤 |
|
正 |
|
連載「SQL緊急救命室」
P.134 リスト4
誤 |
INSERT INTO Sales2
SELECT company,
year,
sale,
CASE SIGN(sale - (SELECT MAX(sale) -- 直前のレコードと売り上げを比較
FROM Sales S2
WHERE S1.company = S2.company
AND S1.year > S2.year ))
WHEN 0 THEN '='
WHEN 1 THEN '+'
WHEN -1 THEN '-'
ELSE NULL END AS var
FROM Sales S1;
|
正 |
INSERT INTO Sales2
SELECT company,
year,
sale,
CASE SIGN(sale - (SELECT MAX(sale) -- 直近の年の売上げを選択
FROM Sales S2
WHERE S1.company = S2.company
AND S2.year =
(SELECT MAX(year) -- 直近の年を選択
FROM Sales S3
WHERE S1.company = S3.company
AND S1.year > S3.year )))
WHEN 0 THEN '='
WHEN 1 THEN '+'
WHEN -1 THEN '-'
ELSE NULL END AS var
FROM Sales S1;
|
P.135 左段1行目
誤 |
S1.year > S2.yearという不等式 |
正 |
S1.year > S3.yearという不等式 |
P.135 左段4行目
誤 |
S1.yearと、S1.year > S2.yearの条件に |
正 |
S1.yearと、S1.year > S3.yearの条件に |
P.135 図5
誤 |
S1.year > S2.yearの条件に該当するレコード集合 |
正 |
S1.year > S3.yearの条件に該当するレコード集合 |
P.135 図8
誤 |
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 12 | 108 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 9 | | |
| 2 | TABLE ACCESS BY INDEX ROWID| SALES | 1 | 9 | 2 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN | SYS_C004248 | 1 | | 1 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL | SALES | 12 | 108 | 3 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("S2"."COMPANY"=:B1 AND "S2"."YEAR"<:B2)
|
正 |
-----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 12 | 348 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 29 | | |
| 2 | TABLE ACCESS BY INDEX ROWID | SALES | 1 | 29 | 2 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | SYS_C004280 | 1 | | 1 (0)| 00:00:01 |
| 4 | SORT AGGREGATE | | 1 | 16 | | |
| 5 | FIRST ROW | | 1 | 16 | 2 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN (MIN/MAX)| SYS_C004280 | 1 | 16 | 2 (0)| 00:00:01 |
| 7 | TABLE ACCESS FULL | SALES | 12 | 348 | 3 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("S2"."COMPANY"=:B1 AND "S2"."YEAR"= (SELECT MAX("YEAR") FROM "SALES"
"S3" WHERE "S3"."YEAR"<:B2 AND "S3"."COMPANY"=:B3))
6 - access("S3"."COMPANY"=:B1 AND "S3"."YEAR"<:B2)
|
P.137 リスト6
誤 |
UPDATE Sales3
SET var =(SELECT CASE SIGN(sale - (SELECT MAX(sale) -- 直前のレコードと売り上げを比較
FROM Sales3 S2
WHERE S1.company = S2.company
AND S1.year > S2.year ))
WHEN 0 THEN '='
WHEN 1 THEN '+'
WHEN -1 THEN '-'
ELSE NULL END AS var
FROM Sales3 S1
WHERE Sales3.company = S1.company
AND Sales3.year = S1.year);
|
正 |
UPDATE Sales3
SET var =(SELECT CASE SIGN(sale - (SELECT MAX(sale) -- 直近の年の売上げを選択
FROM Sales3 S2
WHERE S1.company = S2.company
AND S2.year =
(SELECT MAX(year) -- 直近の年を選択
FROM Sales3 S3
WHERE S1.company = S3.company
AND S1.year > S3.year )))
WHEN 0 THEN '='
WHEN 1 THEN '+'
WHEN -1 THEN '-'
ELSE NULL END AS var
FROM Sales3 S1
WHERE Sales3.company = S1.company
AND Sales3.year = S1.year);
|