49 / 44 / 8
Регистрация: 06.09.2010
Сообщений: 419
1

Запросы на SQL

13.11.2012, 14:24. Показов 1759. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задания, не могу выполнить... уже неделю делаю, ничего не получается.. помогите плиз...

Таблица в приложении.

--4(!). Выполнить запрос, который:
-- получает для каждого сотрудника cтроку в формате
--'Dear '+A+’! ' + ‘ Your annual salary with comm. = ‘+B,
--где A = {‘Mr.’,’Mrs.’} – сокращенный вариант обращения к мужчине или женщине
--(предположить, что женщиной являются все сотрудницы, имя которых заканчивается на букву
--‘a’ или ‘e’)
--B – годовая зарплата с учетом комиссионных.
-- сотрудники должны работать в городе San Francisco.
SQL
1
2
SELECT 'Dear '||DECODE(first_name,first_name NOT LIKE '%e' ,'Mr.','Mrs.')||' Your annual salary with comm. = '||(e.sal*12+NVL(e.comm)*12) 
FROM employees ;
Вот это не хочет запускаться... там где LIKE пишет что неправильный правый аргумент...

--5. Выполнить запрос, который:
-- получает фамилии сотрудников и количество выходных дней ( суббота, воскресенье) с
--момента их зачисления на работу.
-- сотрудники зачислены в марта 1999 года.
Воообще не представляю как его выполнить.. от чего отталкиваться...

--11. Выполнить запрос, который:
-- получает фамилии сотрудников;
-- для сотрудников в таблице истории занятия должностей присутствуют переходы на
--другую должность.

Тоже не знаю...

--14. Выполнить запрос, который:
-- получает фамилии сотрудников, их должность, которые переводились на эту должность
--в дни недели с понедельника по среду.


--15. Выполнить запрос, который:
-- получает кол-во сотрудников в каждом подразделении;
-- кол-во сотрудников не должно быть меньше 2;
-- последней строкой ответа на запрос должно быть общее кол-во сотрудников в выше
--указанных подразделениях ( указать фразу 'Всего по подразделениям' ).
--Использовать оператор union.


--16. Выполнить запрос, который:
-- получает кол-во подразделений в каждой стране;
-- кол-во подразделений не должно быть меньше 2;
-- последней строкой ответа на запрос должно быть общее кол-во подразделений в выше
--указанных странах ( указать фразу 'Всего по странам' ).
--Использовать оператор rollup.


Кто может, помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2012, 14:24
Ответы с готовыми решениями:

Перевести запросы SQL в запросы средствами реляционной алгебры
Ребята помогите, пожалуйста, перевести запросы SQL в язык реляционной алгебры. Курсак с утра...

SQL Запросы. MS SQL. 3. Приложения, которые работают со всеми серверами БД
Всем доброго времени суток! Есть задача: Приложения, которые работают со всеми серверами БД. ...

SQL запросы, чем плоха конкатенация SQL запроса?
Опишу ситуацию, есть БД с несколькими таблицами, с которыми нужно совершать много разных операций...

Sql запросы [ms sql server 2008 r2]
Собсна, рубежный контроль, домашний, базу создал, таблицы связал, с запросами морока осталась....

6
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
Цитата Сообщение от Kateren Посмотреть сообщение
считает количество суббот между датами sysdate и hire_date
А ты в курсе, что суббота - не всегда 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
Цитата Сообщение от Kateren Посмотреть сообщение
в курсе.
Дык упомянул бы об этом. А то станет человек пробовать твой текст с другими 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2012, 14:17
Помогаю со студенческими работами здесь

Sql запросы
Нужно придумать и написать Sql запросы: Запрос 1. запрос с использованием внутреннего соединения...

Запросы SQL
Помогите разобраться, простой запрос, а получается ошибка при в вводе данных в EDIT Ошибка:Invalid...

SQL-запросы
Подскажите, когда в проекте есть datagridview, в котором отображается информации из базы данных, и...

Запросы SQL
Здравствуйте.Помогите пожалуйста написать запрос.Очень надо. запрос-действия. Добавить в таблицу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru