Лабораторная работа 1
Лабораторная работа 4
Составление запросов, требующих использования числовых, символьных функций и функций для работы с датами.
Использование конкатенации с функциями.
Составление запросов, нечувствительных к регистру символов, для проверки полезности символьных функций.
Вычисление продолжительности работы служащего в месяцах и годах.
Определение даты аттестации служащего.
Для каждого служащего выведите фамилию и вычислите количество месяцев со дня найма до настоящего времени, округлённое до ближайшего целого. Назовите столбец MONTH_WORKED. Результаты отсортируйте по количеству отработанных месяцев. Округлите число до ближайшего целого.
| LAST_NAME | MONTH_WORKED |
| Zlotkey | 13 |
| Mourgos | 16 |
| Grant | 22 |
| Lorentz | 25 |
| Vargas | 32 |
| Taylor | 36 |
| Matos | 36 |
| Fay | 43 |
……………..
20 rows selected
select LAST_NAME, DateDiff('m',HIRE_DATE,now()) as MONTH_WORKED from EMPLOYEES;
Получите по каждому служащему отчёт в следующем виде:
<фамилия> зарабатывает <оклад> в месяц, но желает <утроенный оклад>. Назовите столбец Dream Salaries
…
| Dream Salaries |
| King earns $24,000.00 monthly but wants $72,000.00 |
| Kochhar earns $17,000.00 monthly but wants $51,000.00 |
| De Haan earns $17,000.00 monthly but wants $51,000.00 |
| Hunold earns $9,000.00 monthly but wants $27,000.00 |
| Ernst earns $6,000.00 monthly but wants $18,000.00 |
| Lorentz earns $4,200.00 monthly but wants $12,600.00 |
| Mourgos earns $5,800.00 monthly but wants $17,400.00 |
| Rajs earns $3,500.00 monthly but wants $10,500.00 |
| Davies earns $3,100.00 monthly but wants $9,300.00 |
…………
20 rows selected
select LAST_NAME+' зарабатывает $'+CStr(SALARY)+' в месяц, но желает $'+CStr(SALARY*3) as `Dream Salaries` from EMPLOYEES;
Напишите запрос для вывода фамилий и окладов всех служащих. Назовите выходной столбец SALARY. Длина столбца SALARY – 15 символов с заполнением символом $.
| LAST_NAME | SALARY |
| King | $$$$$$$$$$24000 |
| Kochhar | $$$$$$$$$$17000 |
| De Haan | $$$$$$$$$$17000 |
| Hunold | $$$$$$$$$$$9000 |
| Ernst | $$$$$$$$$$$6000 |
| Lorentz | $$$$$$$$$$$4200 |
| Mourgos | $$$$$$$$$$$5800 |
| Rajs | $$$$$$$$$$$3500 |
| Davies | $$$$$$$$$$$3100 |
| Matos | $$$$$$$$$$$2600 |
………………
20 rows selected
select LAST_NAME, String(15-Len(CStr(SALARY)),'$')+CStr(SALARY) from EMPLOYEES;
Для каждого служащего выведите фамилию, дату найма и дату пересмотра зарплаты, которая приходится на первый понедельник после 6 месяцев работы. Назовите столбец REVIEW. Формат даты при выводе имеет вид: “Monday, the Thirty-First of MM, YYYY”.
| LAST_NAME | HIRE_DATE | REVIEW |
| King | 17-JUN-87 | Monday, the Thirty-First of December, 1987 |
| Kochhar | 21-SEP-89 | Monday, the Thirty-Sixth of March, 1990 |
| De Haan | 13-JAN-93 | Monday, the Nineteenth of July, 1993 |
| Hunold | 03-JAN-90 | Monday, the Ninth of July, 1990 |
…………………
20 rows selected
select LAST_NAME, HIRE_DATE, StrConv(WeekDayName(WeekDay(
DateAdd('d',9-WeekDay(DateAdd('m',6,HIRE_DATE)),DateAdd('m',6,HIRE_DATE))
),false,1),3)+', '+CStr(Day(
DateAdd('d',9-WeekDay(DateAdd('m',6,HIRE_DATE)),DateAdd('m',6,HIRE_DATE))
))+' '+MonthName(Month(
DateAdd('d',9-WeekDay(DateAdd('m',6,HIRE_DATE)),DateAdd('m',6,HIRE_DATE))
),true)+', '+ CStr(Year(
DateAdd('d',9-WeekDay(DateAdd('m',6,HIRE_DATE)),DateAdd('m',6,HIRE_DATE))
)) as REVIEW from EMPLOYEES;
По каждому служащему выведите фамилию, дату найма и день недели, когда он был нанят на работу. Назовите последний столбец DAY. Отсортируйте результаты по датам.
| LAST_NAME | HIRE_DATE | DAY |
| Grant | 24-MAY-99 | MONDAY |
| Ernst | 21-MAY-91 | TUESDAY |
| Mourgos | 16-NOV-99 | TUESDAY |
| Taylor | 24-MAR-98 | TUESDAY |
| Rajs | 17-OCT-95 | TUESDAY |
| Gietz | 07-JUN-94 | TUESDAY |
| Higgins | 07-JUN-94 | TUESDAY |
| King | 17-JUN-87 | WEDNESDAY |
| De Haan | 13-JAN-93 | WEDNESDAY |
………………
20 rows selected
select LAST_NAME, HIRE_DATE, StrConv(WeekDayName(WeekDay(HIRE_DATE),false,1),3) as DAY from EMPLOYEES;
Напишите запрос для вывода фамилии и суммы комиссионных каждого служащего. Если служащий не зарабатывает комиссионных, укажите в столбце «No Commission». Назовите столбец COMM.
| LAST_NAME | COMM |
| King | No Commission |
| Kochhar | No Commission |
| De Haan | No Commission |
| Hunold | No Commission |
| Ernst | No Commission |
| Lorentz | No Commission |
| Mourgos | No Commission |
| Rajs | No Commission |
| Davies | No Commission |
| Matos | No Commission |
| Vargas | No Commission |
| Zlotkey | .2 |
| Abel | .3 |
…………….
20 rows selected
select LAST_NAME, Iif(COMMISSION_PCT is null,'No Commission',COMMISSION_PCT) as COMM from EMPLOYEES;
Используя функцию Iif, напишите запрос для отображения должности сотрудника и её разряда (grade). Разряд каждого типа должности JOB_ID приведён в таблице.
| Должность | Разряд |
| AD_PRES | A |
| ST_MAN | B |
| IT_PROG | C |
| SA_REP | D |
| ST_CLERK | E |
| Другая | 0 |
| JOB_ID | G |
| AD_PRES | A |
| AD_VP | 0 |
| AD_VP | 0 |
| IT_PROG | C |
| IT_PROG | C |
| IT_PROG | C |
| ST_MAN | B |
| ST_CLERK | E |
…………………..
20 rows selected
select LAST_NAME, JOB_ID,
Iif(JOB_ID='AD_PRES','A',
Iif(JOB_ID='ST_MAN','B',
Iif(JOB_ID='IT_PROG','C',
Iif(JOB_ID='SA_REP','D',
Iif(JOB_ID='ST_CLERK','E','0'
))))) as G from EMPLOYEES;
страница 1 ... страница 2страница 3страница 4страница 5страница 6
скачать
Другие похожие работы: