49 / 44 / 8
Регистрация: 06.09.2010
Сообщений: 419
|
||||||
1 | ||||||
Запросы на SQL13.11.2012, 14:24. Показов 1759. Ответов 6
Метки нет (Все метки)
Есть задания, не могу выполнить... уже неделю делаю, ничего не получается.. помогите плиз...
Таблица в приложении. --4(!). Выполнить запрос, который: -- получает для каждого сотрудника cтроку в формате --'Dear '+A+’! ' + ‘ Your annual salary with comm. = ‘+B, --где A = {‘Mr.’,’Mrs.’} – сокращенный вариант обращения к мужчине или женщине --(предположить, что женщиной являются все сотрудницы, имя которых заканчивается на букву --‘a’ или ‘e’) --B – годовая зарплата с учетом комиссионных. -- сотрудники должны работать в городе San Francisco.
--5. Выполнить запрос, который: -- получает фамилии сотрудников и количество выходных дней ( суббота, воскресенье) с --момента их зачисления на работу. -- сотрудники зачислены в марта 1999 года. Воообще не представляю как его выполнить.. от чего отталкиваться... --11. Выполнить запрос, который: -- получает фамилии сотрудников; -- для сотрудников в таблице истории занятия должностей присутствуют переходы на --другую должность. Тоже не знаю... --14. Выполнить запрос, который: -- получает фамилии сотрудников, их должность, которые переводились на эту должность --в дни недели с понедельника по среду. --15. Выполнить запрос, который: -- получает кол-во сотрудников в каждом подразделении; -- кол-во сотрудников не должно быть меньше 2; -- последней строкой ответа на запрос должно быть общее кол-во сотрудников в выше --указанных подразделениях ( указать фразу 'Всего по подразделениям' ). --Использовать оператор union. --16. Выполнить запрос, который: -- получает кол-во подразделений в каждой стране; -- кол-во подразделений не должно быть меньше 2; -- последней строкой ответа на запрос должно быть общее кол-во подразделений в выше --указанных странах ( указать фразу 'Всего по странам' ). --Использовать оператор rollup. Кто может, помогите пожалуйста.
0
|
13.11.2012, 14:24 | |
Ответы с готовыми решениями:
6
Перевести запросы SQL в запросы средствами реляционной алгебры SQL Запросы. MS SQL. 3. Приложения, которые работают со всеми серверами БД SQL запросы, чем плоха конкатенация SQL запроса? Sql запросы [ms sql server 2008 r2] |
14 / 14 / 0
Регистрация: 25.10.2012
Сообщений: 41
|
|
16.11.2012, 10:08 | 2 |
по первому как- то так:
select 'Dear '||DECODE(substr(a.first_name,-1),'e', ' Mrs. ', 'a', 'Mrs. ', 'Mr. ')||a.first_name||'. Your annual salary with comm. = '||to_char(a.salary*12+NVL(a.commission_pct*12,0)) from employees a Добавлено через 14 минут вот так, если по городу отбор идет select 'Dear '||DECODE(substr(a.first_name,-1),'e', ' Mrs. ', 'a', 'Mrs. ', 'Mr. ')||a.first_name||'. Your annual salary with comm. = '||to_char(a.salary*12+NVL(a.commission_pct*12,0)) from employees a, departments b, locations c where a.department_id = b.department_id and b.location_id = c.location_id and c.city = 'San Francisco' ну и перепроверьте логику расчета комиссии. . .
1
|
14 / 14 / 0
Регистрация: 25.10.2012
Сообщений: 41
|
|
19.11.2012, 11:41 | 3 |
по 5 пункту посмотрите такой селект:
select a.last_name, a.hire_date, (decode(to_char(trunc(sysdate),'d'),6,trunc(sysdate),next_day(trunc(sysdate-7),6))- decode(to_char(a.hire_date,'d'),6,a.hire_date,next_day(a.hire_date,6)))/7 + 1 + (decode(to_char(trunc(sysdate),'d'),7,trunc(sysdate),next_day(trunc(sysdate-7),7))- decode(to_char(a.hire_date,'d'),7,a.hire_date,next_day(a.hire_date,7)))/7 + 1 from employees a where to_char(a.hire_date,'mm.yyyy') = '03.1999' пояснения: этот кусок: (decode(to_char(trunc(sysdate),'d'),6,trunc(sysdate),next_day(trunc(sysdate-7),6))- decode(to_char(a.hire_date,'d'),6,a.hire_date,next_day(a.hire_date,6)))/7 + 1 считает количество суббот между датами sysdate и hire_date этот кусок: (decode(to_char(trunc(sysdate),'d'),7,trunc(sysdate),next_day(trunc(sysdate-7),7))- decode(to_char(a.hire_date,'d'),7,a.hire_date,next_day(a.hire_date,7)))/7 + 1 считает количество воскресений между датами sysdate и hire_date
1
|
Модератор
4215 / 3056 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
19.11.2012, 12:25 | 4 |
А ты в курсе, что суббота - не всегда 6-й день недели? Что это зависит от NLS-установок сессии?
PS to_char(trunc(sysdate),'d') - это и без TRUNC вполне работает
1
|
14 / 14 / 0
Регистрация: 25.10.2012
Сообщений: 41
|
|
19.11.2012, 12:27 | 5 |
в курсе.
1
|
Модератор
4215 / 3056 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
19.11.2012, 12:29 | 6 |
Дык упомянул бы об этом. А то станет человек пробовать твой текст с другими NLS-установками и у него не пойдет
1
|
14 / 14 / 0
Регистрация: 25.10.2012
Сообщений: 41
|
|
19.11.2012, 14:17 | 7 |
тока вот без trunc, разница между датами будет дробным числом
Добавлено через 1 минуту ну да, не везде trunc нужен. . . Добавлено через 1 час 46 минут по 11 заданию, если я правильно понял. . . select a.last_name from employees a where exists (select 1 from job_history b where a.employee_id = b.employee_id and a.job_id != b.job_id)
1
|
19.11.2012, 14:17 | |
19.11.2012, 14:17 | |
Помогаю со студенческими работами здесь
7
Sql запросы Запросы SQL SQL-запросы Запросы SQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |