Гость
Форумы / Сертификация и обучение [игнор отключен] [закрыт для гостей] / Коварство экзамена 70-229: COALESCE? / 5 сообщений из 5, страница 1 из 1
18.11.2002, 15:22
    #32069040
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коварство экзамена 70-229: COALESCE?
You are a database developer for Adventure Works. You are designing a script for the human resources
department that will report yearly wage information. There are three types of employee. Some employees
earn an hourly wage, some are salaried, and some are paid commission on each sale that they make. This
data is recorded in a table named Wages, which was created by using the following script:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE Wages
(
emp_id tinyint identity,
hourly_wage decimal NULL,
salary decimal NULL,
commission decimal NULL,
num_sales tinyint NULL
)


An employee can have only on type of wage information. You must correctly report each employee’s
yearly wage information.

Which script should you use?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
A. SELECT CAST (hourly_wage *  40  *  52  +
salary +
commission * num_sales AS MONEY) as YearlyWages
FROM Wages

B. SELECT CAST (COALESCE (hourly_wage *  40  *  52 ,
Salary,
commission * num_sales) AS MONEY) as YearlyWages
FROM Wages

C. SELECT CAST (CASE
WHEN((hourly_wage,) IS NOTNULL) THEN hourly_wage *  40  *  52 
WHEN(NULLIF(salary,NULL)IS NULL)THEN salary
ELSE commission * num_sales
END
AS MONEY)
As_yearlyWages
FROM Wages

D. SELECT CAST(CASE
WHEN (hourly_wage IS NULL)THEN salary
WHEN (salary IS NULL)THEN commission*num_sales
ELSE commission * num_sales
END
AS MONEY)
As YearlyWages
FROM Wages



Вроде B?
...
Рейтинг: 0 / 0
18.11.2002, 15:38
    #32069051
Makc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коварство экзамена 70-229: COALESCE?
-->An employee can have only on type of wage information<--

Да не, вроде C
...
Рейтинг: 0 / 0
18.11.2002, 15:45
    #32069061
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коварство экзамена 70-229: COALESCE?
А я думаю что все таки B ибо по смыслу подходит
-->An employee can have only ONE type of wage information<--

может jimmers ошибся в вопросе :-/
...
Рейтинг: 0 / 0
18.11.2002, 15:45
    #32069062
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коварство экзамена 70-229: COALESCE?
да нет, вроде бы как раз В.
там же..

COALESCE
Returns the first nonnull expression among its arguments.
...
Рейтинг: 0 / 0
18.11.2002, 16:30
    #32069116
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коварство экзамена 70-229: COALESCE?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
CREATE TABLE Wages
(
emp_id tinyint identity,
hourly_wage decimal NULL,
salary decimal NULL,
commission decimal NULL,
num_sales tinyint NULL
)

insert into wages(hourly_wage) values ( 8 )
insert into wages(hourly_wage) values ( 9 )
insert into wages(hourly_wage) values ( 10 )

insert into wages(salary) values ( 1000 )
insert into wages(salary) values ( 1100 )
insert into wages(salary) values ( 1200 )

insert into wages(commission,num_sales) values ( 10 , 10 )
insert into wages(commission,num_sales) values ( 15 , 20 )
insert into wages(commission,num_sales) values ( 20 , 30 )

select * from wages

 1 . Даёт NULL везде

SELECT CAST (hourly_wage *  40  *  52  +
salary +
commission * num_sales AS MONEY) as YearlyWages
FROM Wages

 2 . Даёт результат
SELECT CAST (COALESCE (hourly_wage *  40  *  52 ,
Salary,
commission * num_sales) AS MONEY) as YearlyWages
FROM Wages

 3 . Line  2 : Incorrect syntax near ','. 
SELECT CAST (CASE
WHEN((hourly_wage,) IS NOTNULL) THEN hourly_wage *  40  *  52 
WHEN(NULLIF(salary,NULL)IS NULL)THEN salary
ELSE commission * num_sales
END
AS MONEY)
As_yearlyWages
FROM Wages

 4 . Не считает для  1 - 3  и  7 - 9 
SELECT CAST(CASE
WHEN (hourly_wage IS NULL)THEN salary
WHEN (salary IS NULL)THEN commission*num_sales
ELSE commission * num_sales
END
AS MONEY)
As YearlyWages
FROM Wages
...
Рейтинг: 0 / 0
Форумы / Сертификация и обучение [игнор отключен] [закрыт для гостей] / Коварство экзамена 70-229: COALESCE? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]