|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.04.2013, 16:09 | #1 |
Пользователь
Регистрация: 03.04.2013
Сообщений: 12
|
нужно составить sql-запросы
Привет всем, только начала изучать SQL. Вот задания которые нужно решить. Проверьте меня, пожалуйста. Правильно ли я написала решение? Исходные данные:
Таблица ORGANIZATION - "Подразделение" имеет колонки ORG_ID и PARENT_ID NAME Таблица PERSON - "Сотрудник" имеет колонки PERSON_ID, NAME ORG_ID 1. написать sql-запрос, формирующий список сотрудников с указанием названий подразделений, в которых они работают 2. написать sql-запрос, формирующий список названий подразделений с указанием количества сотрудников, которые в них работают Решение: 1. SELECT PERSON_ID, NAME ORG_ID FROM PERSON GROUP BY PERSON_ID; 2. SELECT NAME ORG_ID, COUNT(PERSON_ID) AS [Количество сотрудников] FROM PERSON GROUP BY NAME ORG_ID; |
03.04.2013, 16:31 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
неправильно
1 "формирующий список сотрудников с указанием названий подразделений" - нет названий подразделений - зачем тут GROUP BY ? 2 "формирующий список названий подразделений с указанием количества сотрудников, которые в них работают" - нет списка подразделений - запрос не верный |
03.04.2013, 16:36 | #3 |
Пользователь
Регистрация: 03.04.2013
Сообщений: 12
|
я думала название подразделений это NAME ORG_ID? это мне тогда из двух таблиц нужно выборку делать?
|
03.04.2013, 16:37 | #4 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
конечно .
Код:
Последний раз редактировалось Stilet; 03.04.2013 в 17:44. |
03.04.2013, 16:44 | #5 |
Пользователь
Регистрация: 03.04.2013
Сообщений: 12
|
1. SELECT PERSON_ID, ORG_ID
FROM PERSON, ORGANIZATION WHERE NAME ORG_ID=ORG_ID; (или это лишнее?) 2. SELECT ORG_ID, COUNT(PERSON_ID) AS [Количество сотрудников] FROM PERSON, ORGANIZATION GROUP BY ORG_ID; |
03.04.2013, 16:51 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
лучше синтаксис джойнов, оно нагляднее и понятнее, и про алиасы почитайте
Код:
|
03.04.2013, 17:00 | #7 |
Пользователь
Регистрация: 03.04.2013
Сообщений: 12
|
спасибо почитаю, а код это начало для первого задания или второго? и еще посоветуйте книги для новичков и в какой программе лучше обучаться, выполнять такие задания
и еще алиасы что такое? Последний раз редактировалось Stilet; 03.04.2013 в 17:48. |
03.04.2013, 17:14 | #8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
алиас (alias) - псевдоним, кличка ...
P.NAME AS PERSON_NAME тут P.NAME - данные из поля name из таблицы person AS -нарекаем как PERSON_NAME - алиас http://www.w3schools.com/sql/sql_alias.asp |
04.04.2013, 00:02 | #9 |
Пользователь
Регистрация: 03.04.2013
Сообщений: 12
|
проверьте, пожалуйста еще раз
1. SELECT P.NAME AS PERSON_NAME, O.NAME AS ORG_NAME FROM PERSON AS P, ORGANIZATION AS O WHERE P.ORG_ID=O.ORG_ID второй вариант с join SELECT P.NAME AS PERSON_NAME, O.NAME AS ORG_NAME FROM PERSON AS P INNER JOIN ORGANIZATION AS O ON P.ORG_ID=O.ORG_ID 2. тут я не совсем разобралась как делать, можете разъяснить? делала аналогично одного примера из интернета SELECT O.NAME AS ORG_NAME, F.ORG_COUNT FROM ORGANIZATION AS O SELECT P.ORG_ID, COUNT(P.ORG_ID) AS ORG_COUNT FROM PERSON AS P GROUP BY P.ORG_ID HAVING COUNT(P.ORG_ID) F WHERE P.ORG_ID=O.ORG_ID |
04.04.2013, 00:24 | #10 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
1 нормально
2 это не запрос, это 2 запроса, не по условию хэвинг тут не к селу совсем |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопросам знатокам и просто любителям, нужно составить не сложный sql запрос | modz | SQL, базы данных | 3 | 14.08.2013 11:20 |
Нужно составить запросы | настенка=) | SQL, базы данных | 4 | 26.05.2010 22:27 |
Составить запросы | Lion4ik89 | Фриланс | 6 | 18.02.2010 07:53 |
нужно описать sql запросы | BIS88 | SQL, базы данных | 3 | 26.02.2009 21:38 |