Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Очень нужна помощь по составлению запроса mysql

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Umka
Гость





СообщениеДобавлено: Пн Окт 14 2002 23:17    Заголовок сообщения: Очень нужна помощь по составлению запроса mysql Ответить с цитатой

Вопрос состоит в следующем:
У меня есть две таблицы:
Таблица nug:
+----------+----------+
| ke | kol1 |
+----------+----------+
| 1 | 32 |
| 1 | 180 |
| 2 | 12 |
| 2 | 100 |
| 2 | 25 |
| 2 | 75 |
| 3 | 40 |
| 3 | 37 |
| .. | .. |
+----------+----------+

Таблица nas:
+----------+----------+
| ke | fio |
+----------+----------+
| 1 | Иванов |
| 2 | Петров |
| 3 | Сидоров |
| .. | .. |
+----------+----------+

Мне нужно было вывести из таблицы nug количество абонентов, у которых суммарный показатель sum(kol1) больше 200.
Я делал такой запрос и получал нужный мне результат:
Select ke,sum(kol1) as sum_kol from nug group by ke having sum_kol >200;
+---------+-----------+
| ke | sum_kol |
+---------+-----------+
| 1 | 212 |
| 1 | 212 |
+---------+-----------+
Но теперь задача несколько другая: кроме вышеуказанного мне нужно добавить столбик с фамилией тех у кого sum(kol1) > 200 из таблицы nas, где тоже присутствует идентификатор ke. Короче говоря это должно выглядеть так:
+---------+-----------+--------+
| ke | sum_kol | fio |
+---------+-----------+--------+
| 1 | 212 |Иванов |
| 1 | 212 |Петров |
+---------+-----------+--------+
Как мне это можно сделать?
Я пытался написать, но ничего не выходит, запрос выполняется очень долго и выдает непонятно что.
Я делал так:
Select nug.ke,sum(nug.kol1) as sum_kol1, nas.fio from nug,nas group by nug.ke having sum_kol >200 and nug.ke=nas.ke;
Результат такого запросаSadтолько одна строчка)
+--------+----------------+----------------+
| ke | sum_kol | fio |
+--------+----------------+----------------+
| 1 |общая сумма по |Иванов (т.е. |
| |столбцу kol1 для|первая фамилия |
| |всех ke |первого ke в та-|
| | |лице nas |
+--------+----------------+----------------+

Как мне получить желаемый результат?
Я уже вторые сутки ломаю себе голову…
Если вам не трудно напишите мне на umka@ukr.net
Заранее Вам благодарен!
Вернуться к началу
Олигарх



Зарегистрирован: 28.09.2002
Сообщения: 102

СообщениеДобавлено: Вт Окт 15 2002 07:43    Заголовок сообщения: Re: Ответить с цитатой

Не надо ломать голову вторые сутки! Это может сказаться на физическом состоянии мозгов Smile

Сделай в два захода - выбрал те номера, у которых kol больше 200, а во втором запросе выбирай уже из второй таблицы фамилии, соответствующие этим номерам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Umka
Гость





СообщениеДобавлено: Вт Окт 15 2002 13:55    Заголовок сообщения: Re: новый вопрос Ответить с цитатой

Спасибо!
Я уже вчера это сделал!
Но теперь у меня новая проблема: запрос выполняется очень долго,т.к. нет не первичных ключей не индексов!
Как можно создать индекс для уже существующей таблицы mysql?
Вернуться к началу
Олигарх



Зарегистрирован: 28.09.2002
Сообщения: 102

СообщениеДобавлено: Ср Окт 16 2002 23:21    Заголовок сообщения: Re: Ответить с цитатой

Что-то типа этого:

ALTER TABLE tbl_name ADD PRIMARY KEY (column_name), ADD INDEX [index_name] (index_col_name);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...