Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 23:27   #11
grinch
 
Регистрация: 17.03.2009
Сообщений: 5
По умолчанию

Цитата:
как работает, надеюсь, разобрался?
Да, разобрался. И ума не приложу, как можно упростить это
grinch вне форума Ответить с цитированием
Старый 20.03.2009, 16:49   #12
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Ваш запрос практически полностью соответствует вложенному запросу из моего решения - он вернёт количество записей по каждой повторяющейся дате.
А вроде бы в постановке надо выдать — сколько всего таких записей (для примера из поста #3 должно вернуться число 5 - см.ответ ТС в #4) хотя, не исключаю, что он просто не так понял задание. :-)
запрос типа проверки на уникальность данных?
просто мой вариант показывает сразу же дубли с кол-вом дублей, наглядно (приходится тестить различные поделухи и при этом разработчики рассказывают как у них все замечательно спроектировано)
в общем-то можно модифицировать мой запрос до такого вида и получить искомый результат
Код:
select 
  sum(count(p.mydate))
from prepod p 
group by p.mydate 
having count(p.mydate)>1
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
soleil@mmc, а по 2-му запросу есть мысли/предложения?! мне мой вариант не нравится — я просто уверен, что его можно сделать красивее и эффективнее!!
честно говоря, не было времени подумать
если чего придумаю, запощу (речь про скл-92 ведь)

круто написали, но сердцем чую, что ваш запрос должен спасовать при ситуации, когда есть кафедра без записей в табл. Преподы (т.е. кафедра есть, а преподов нет) - в общем случае ведь такое возможно

апдейт
организм, замученный ораклом, выдает тока запросы селект фром селект фром селект, но при желании можно оптимизировать (хотя в чистом оракле и еще проще можно реализовать на аналитических функах)

Код:
select 
  k.id,
  (select count(p.fk_kaf_id) from prepod p where p.fk_kaf_id = k.id) f_cnt
from kafedra k
group by k.id
having (select count(p.fk_kaf_id) from prepod p where p.fk_kaf_id = k.id)<=(
                                            select   
                                              min(f_cnt)
                                            from(
                                            select
                                              k.id,
                                              (select count(p.fk_kaf_id) from prepod p where p.fk_kaf_id = k.id) f_cnt
                                            from kafedra k
                                            group by k.id))

Последний раз редактировалось soleil@mmc; 20.03.2009 в 17:28.
soleil@mmc вне форума Ответить с цитированием
Старый 23.03.2009, 13:15   #13
Neobrat
Форумчанин
 
Регистрация: 10.12.2007
Сообщений: 124
По умолчанию

на второй вопрос под акцесс не проверял но бод MySql сделал бы что то вроде

SELECT TOP 1 * FROM (
SELECT COUNT(p.id) AS cnt , k.name FROM prepod p
INNER JOIN kafedra k ON p.kafedra_id=k.id
GROUP BY k.name
) t ORDER BY t.cnt DESC

если надо найти минимальное число но запрос без DESC
Русский язык не мой конёк
Neobrat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание SQL-запросов tsergey Помощь студентам 9 12.02.2009 11:17
составление запросов в 2003 только при помощи SQL, ни мастеров, ни конструкторов использовать не нужно Baxxter Microsoft Office Access 3 09.12.2008 12:35
использование SQL запросов в коде VBA b00s Microsoft Office Access 3 26.04.2008 13:40
несколько запросов SQL Arteom БД в Delphi 3 09.09.2007 23:39