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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите составить запрос, Вложенный 
:(
    Опции темы
AlexanderI
Дата 30.3.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



помогите составить запрос

Есть таблица учеников "Ученики". В ней 2 поля "ID" и"Фамилия".
И Таблица "Оценки" . В ней поля "ID ученика", "Двойки", "Пятёрки".
Нужно составить запрос чтобы вывелось всё в одной таблице: фамилия ученика, его общее количество двоек, и в третей колонке его общее количество пятёрок.
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
Бонифаций
Дата 30.3.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



навскидку не проверяя

Код


select u.familiya ,count(o.dvojki),count(o.piaterki) from u4eniki u left join otsenki o on (o.id_u4enika = u.id) group by u.familiya




--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
MFoxer
Дата 30.3.2006, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>В ней поля "ID ученика", "Двойки", "Пятёрки".
Это оценки или количество ?

Бонифаций - ты облажался, заведомо.
1) не left join - в Inner
2) group by u.familiya - не стандарт ANSI, group by только для агрегируемых функеций в запросе.
Хотя может у Вас там В МуSQL - это за правило smile))





PM MAIL   Вверх
Secandr
Дата 30.3.2006, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



MFoxer, будь по проще и люди потянутся!


AlexanderI, страная структура таблиц. Мне кажется можно было бы организовать по другому... Привити полную структуру таблиц и что ты хочешь от них добиться?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Ignat
Дата 30.3.2006, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(MFoxer @ 30.3.2006, 02:41 Найти цитируемый пост)
group by только для агрегируемых функеций в запросе.

COUNT перестала быть агрегатной функцией? smile

Цитата(MFoxer @ 30.3.2006, 02:41 Найти цитируемый пост)
1) не left join - в Inner

А вот нифига. При этом если ученику не найдена ни одна запись оценок, он исчезнет из результатов выборки. smile

Цитата(MFoxer @ 30.3.2006, 02:41 Найти цитируемый пост)
2) group by u.familiya - не стандарт ANSI,

В ANSI отменили агрегирование? smile

Цитата(MFoxer @ 30.3.2006, 02:41 Найти цитируемый пост)
Хотя может у Вас там В МуSQL - это за правило

А у Вас это где?


--------------------
Теперь при чем :P
PM   Вверх
AlexanderI
Дата 30.3.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Извините, вчера так с этим загнался, что тал неправилную задачу.

Есть таблица учеников "Ученики". В ней 2 поля "ID" и"Фамилия".
И Таблица "Оценки" . В ней 3 поля "ID ученика", "Двойки" и дополнительное поле "Temp".
"Темп" принемает 2 значения 1 и 0.
Нужно составить запрос чтобы вывелось всё в одной таблице: фамилия ученика, его общее количество двоек при "Temp = 0" и общее число двоек при "Temp = 1" .
Добавлено @ 10:24
Цитата(Secandr @ 30.3.2006, 07:39)

AlexanderI, страная структура таблиц. Мне кажется можно было бы организовать по другому... Привити полную структуру таблиц и что ты хочешь от них добиться?

я просто привёл в пример простую таблицу. Мне бы только узнать каким запросом такое делается, а я уж перевёл бы этот запрос в свои (огромные) таблици.
Цитата(Secandr @ 30.3.2006, 07:39)

>В ней поля "ID ученика", "Двойки", "Пятёрки".
Это оценки или количество ?


Это оченки т.е. число 2.

Это сообщение отредактировал(а) AlexanderI - 30.3.2006, 10:28
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
Berliner
Дата 30.3.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата



Есть таблица учеников "Ученики". В ней 2 поля "ID" и"Фамилия".
И Таблица "Оценки" . В ней 3 поля "ID ученика", "Двойки" и дополнительное поле "Temp".
"Темп" принемает 2 значения 1 и 0.
Нужно составить запрос чтобы вывелось всё в одной таблице: фамилия ученика, его общее количество двоек при "Temp = 0" и общее число двоек при "Temp = 1"

может так? хотя надо еще условие присоеденить Оценки.Temp=1

Код

select  Ученики.Фамилия, count (Оценки.Двойки)  from Ученики left join  Оценки on Ученики.id=Оценки.ID and Оценки.Temp=0


Это сообщение отредактировал(а) Berliner - 30.3.2006, 14:04
PM   Вверх
AlexanderI
Дата 30.3.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Berliner @ 30.3.2006, 14:03 Найти цитируемый пост)
может так? хотя надо еще условие присоеденить Оценки.Temp=1


А как это сделат ? мне это и нужно.
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
Ignat
Дата 30.3.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Могу предложить такой вариант:

Код

SELECT Ученики.Фамилия, Оценки.Temp, COUNT(Оценки.Двойки)
FROM Ученики LEFT JOIN  Оценки ON Ученики.id=Оценки.ID
GROUP BY Ученики.Фамилия, Оценки.Temp DESC;


Если не то, скажи, что ты хочешь увидеть.


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


 




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


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

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