![]() |
|
Модераторы: skyboy |
![]()
|
|
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
вообщем нужно написать несколько примитивных запросов... написал, но где-то присутствуют недочеты/ошибки... никак не могу понять где...
буду благодарен, если подскажете где) вот суть запросов и мой вариант: Есть таблица SOTR со следующей структурой: Название поля Тип Назначение Name Строка Имя сотрудника Address Строка Адрес проживания Mesto Строка Место рождения Sex Строка Пол: “M” – мужской, “F” – женский Примерное содержимое таблицы: Name Address Mesto Sex Петр Г.Москва, ул. Петрова, д.4 Москва M Иван Г.Киев, ул. Иванова, д.3 Киев M Маша Г.Москва, ул. Машина, д.1 Москва F Федор Г.Москва, ул. Федорова, д.10 Фрунзе M Необходимо написать запрос, который выводит содержимое всей таблицы. SELECT Name, Address, Mesto, Sex FROM SOTR; Либо SELECT * FROM SOTR; Написать запрос, который выводит содержимое таблицы SOTR по сотрудникам, у которых пол – женский. SELECT Name, Address, Mesto, Sex FROM SOTR WHERE Sex=”F”; Есть еще одна таблица ZARP со следующей структурой: Название поля Тип Назначение Name Строка Имя сотрудника Zarp Число Зарплата Примерное содержимое таблицы: Name Zarp Петр 100 Федор 200 Маша 300 Написать запрос, который из таблиц SOTR и ZARP выводит следующую информацию: Имя сотрудника; Адрес; Зарплата SELECT Name, Address, Zarp FROM SOTR, ZARP WHERE SOTR.Name=ZARP.Name; Есть еще одна таблица POST со следующей структурой: Название поля Тип Назначение Name Строка Имя сотрудника Position Строка Должность Примерное содержимое таблицы: Name Position Петр Специалист Федор Инженер Маша Главный инженер Иван Инженер Написать запрос, который из таблиц SOTR, ZARP, POST выводит следующую информацию о сотруднике с максимальной зарплатой: Имя сотрудника; Место рождения; Пол; Зарплата; Должность; SELECT Name, Address, Sex, Zarp, Position FROM SOTR, ZARP, POST WHERE ((SOTR.Name=ZARP.Name=POST.Name) AND (Zarp=(SELECT MAX(Zarp) FROM ZARP))); Написать запрос, который из таблиц ZARP, POST выведет общую сумму зарплат всех инженеров. SELECT Zarp FROM ZARP, POST WHERE ((ZARP.Name=POST.Name) AND (Position=”Инженер”)); *обозначим этот запрос как (1). SELECT SUM(Zarp) FROM (1); |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Что заставляет Вас так думать? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
ну, эти запросы меня попросили написать, так сказать, в качестве вступительного задания, при приеме на работу...
и на собеседовании попросили еще разок повнимательнее их посмотреть, т.к. в них присутствуют недочеты... возможно в знаках препинания или еще в чем-то... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ни одна СУБД тебя не поймёт... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
проблема в двойном сравнении? как его избежать тогда в данном случае?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
(a=b) and (a=c)
Добавлено через 1 минуту и 36 секунд Но это полдела - в этом запросе Вы не показали знание группировки и агрегатных функций. То же и в последнем запросе. PS. Думаю, что входной тест безнадёжно провален... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
для чего в данных запросах использовать группировку?... вроде бы нет идентичных строк...
|
|||
|
||||
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
подскажите тогда, как будет выглядеть результат запроса без группировки... не могу пока понять, как будет действовать группировка...
|
|||
|
||||
| rodnover |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Например, этот запрос
можно записать так через группировку
Это сообщение отредактировал(а) rodnover - 31.8.2011, 19:06 |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Вы не показали ЗНАНИЯ агрегирования, группировки, использование секции HAVING в предпоследнем запросе. Неясно зачем нагородили подзапрос в последнем запросе. Нигде не используете алиасы. В многотабличных запросах не всегда указываете таблицу-источник поля, даже если таблица используется кратно. Сравниваете скаляр с набором.
Показательный вопрос... просто потому, что если не указывать явно, и если в документации не описано явно, сервер имеет право любую неоднозначность интерпретировать так, как ему взбрендит. И вовсе не факт, что так, как на самом деле необходимо. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
отнюдь нужно а вы выводите максимальную зарплату для сотрудников. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
||||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Слезно прошу проещния, фирста не заметил Добавлено через 1 минуту а в каком диалекте у нас фирст? FB? Добавлено через 3 минуты и 54 секунды -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Someek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
спасибо, буду разбираться)
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |