Лабораторная работа 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
скачать
Другие похожие работы: