Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите, где недочеты в запросах... 
:(
    Опции темы
Someek
Дата 31.8.2011, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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);

PM MAIL   Вверх
Zloxa
Дата 31.8.2011, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Someek @  31.8.2011,  15:57 Найти цитируемый пост)
 но где-то присутствуют недочеты/ошибки... 

Что заставляет Вас так думать?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Someek
Дата 31.8.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



ну, эти запросы меня попросили написать, так сказать, в качестве вступительного задания, при приеме на работу...
и на собеседовании попросили еще разок повнимательнее их посмотреть, т.к. в них присутствуют недочеты...
возможно в знаках препинания или еще в чем-то... 
PM MAIL   Вверх
Akina
Дата 31.8.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Someek @  31.8.2011,  16:57 Найти цитируемый пост)
WHERE ((SOTR.Name=ZARP.Name=POST.Name) 

Ни одна СУБД тебя не поймёт...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Someek
Дата 31.8.2011, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



проблема в двойном сравнении? как его избежать тогда в данном случае? 
PM MAIL   Вверх
Akina
Дата 31.8.2011, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



(a=b) and (a=c)

Добавлено через 1 минуту и 36 секунд
Но это полдела - в этом запросе Вы не показали знание группировки и агрегатных функций. То же и в последнем запросе.

PS. Думаю, что входной тест безнадёжно провален...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Someek
Дата 31.8.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



для чего в данных запросах использовать группировку?... вроде бы нет идентичных строк... 
PM MAIL   Вверх
Someek
Дата 31.8.2011, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



подскажите тогда, как будет выглядеть результат запроса без группировки... не могу пока понять, как будет действовать группировка...
PM MAIL   Вверх
rodnover
Дата 31.8.2011, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: 1
Всего: 10



Например, этот запрос 
Код

SELECT  Name, Address, Sex, Zarp, Position 
FROM SOTR, ZARP, POST  
WHERE ((SOTR.Name=ZARP.Name=POST.Name) AND (Zarp=(SELECT MAX(Zarp) FROM  ZARP)));


можно записать так через группировку


Код

select first 1 SOTR.NAME, SOTR.ADDRESS, SOTR.SEX, max(ZARP.ZARP) as ZRP, POST.POSITION
from SOTR
inner join ZARP on ZARP.NAME = SOTR.NAME
inner join POST on POST.NAME = SOTR.NAME
group by SOTR.NAME, SOTR.ADDRESS, SOTR.SEX, POST.POSITION
order by ZRP desc


Это сообщение отредактировал(а) rodnover - 31.8.2011, 19:06
PM MAIL   Вверх
Akina
Дата 31.8.2011, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Вы не показали ЗНАНИЯ агрегирования, группировки, использование секции HAVING в предпоследнем запросе. Неясно зачем нагородили подзапрос в последнем запросе. Нигде не используете алиасы. В многотабличных запросах не всегда указываете таблицу-источник поля, даже если таблица используется кратно. Сравниваете скаляр с набором. 
 
Цитата(Someek @  31.8.2011,  18:39 Найти цитируемый пост)
для чего в данных запросах использовать группировку?... вроде бы нет идентичных строк...  

Показательный вопрос... просто потому, что если не указывать явно, и если в документации не описано явно, сервер имеет право любую неоднозначность интерпретировать так, как ему взбрендит. И вовсе не факт, что так, как на самом деле необходимо.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 31.8.2011, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(rodnover @  31.8.2011,  19:05 Найти цитируемый пост)
Например, этот запрос 

Цитата(rodnover @  31.8.2011,  19:05 Найти цитируемый пост)
можно записать так через группировку

отнюдь smile 
нужно
Цитата(Someek @  31.8.2011,  15:57 Найти цитируемый пост)
 информацию о сотруднике с максимальной зарплатой:

а вы выводите максимальную зарплату для сотрудников.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
rodnover
Дата 31.8.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: 1
Всего: 10



Цитата(Zloxa @  31.8.2011,  23:11 Найти цитируемый пост)
а вы выводите максимальную зарплату для сотрудников



Вы в этом сильно уверены?


P.S. Понял про что вы. select first 1

Это сообщение отредактировал(а) rodnover - 31.8.2011, 19:19
PM MAIL   Вверх
Zloxa
Дата 31.8.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(rodnover @  31.8.2011,  19:17 Найти цитируемый пост)
Вы в этом сильно уверены?

Слезно прошу проещния, фирста не заметил

Добавлено через 1 минуту
а в каком диалекте у нас фирст? FB?

Добавлено через 3 минуты и 54 секунды
Цитата(Zloxa @  31.8.2011,  19:19 Найти цитируемый пост)
FB? 

 smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Someek
Дата 31.8.2011, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 31.8.2011

Репутация: нет
Всего: нет



спасибо, буду разбираться)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.