![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Как средствами sql написать запрос позволяющий сравнить группу значений
одного поля с группой значений другого. Опрератор in умеет сравнивать только так 2 in (2,4), а если надо сравнить (3,8) in (3,10,5) то ...? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Что то я не понял. Ты имеешь в виду пересечение множеств?
-------------------- Все знать невозможно, но хочется |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
То надо глаза лечить. Сорри. В конкретном поле конкретной записи бывает только одно значение. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 5 Всего: 252 |
ПЛЗ. Конкретнее опиши задачу - поля в одной табле или в разных. Небольшой примерчик give
|
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Задача следующая. Имеется БД со сведениями о студентах. Необходимо найте всех студентов оценки которых точно совпадают с оценками студента имеющих идентификатор 12. БД прилагается: Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Это все здОрово... но понятнее не стало... вместо скринов таблиц дай их структуру и связи... впрочем на ТАКОЙ структуре задача просто не решается - потому как количество оценок у отдельно взятого студента есть величина (формально) переменная, следовательно текст запроса надо строить динамически... вернее можно развлечься с выборкой из перекрестного запроса, связанного с простым запросом - но это будет страшненько...
ИМХО лежит тебе дорога в сторону написания хранимой процедуры. Алгоритм (приблизительно): Принимаем ID студента Делаем SELECT, получаем перечень его оценок ([Оценка 1], [Оценка 2], ...) Делаем SELECT, получаем количество предметов вообще Динамически строим запрос на получение перекрестной таблицы типа (ID студента, [Оценка по предмету 1], [Оценка по предмету 2], ...) с соотв. фильтром (Where [Оценка по предмету 1] = [Оценка 1] AND ...). Выдаем результат -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Akina ты хочешь сказать что через select запросы сделать ни как не получится. Т.е. обязательно надо использовать процедуру. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Ну почему... получится... просто это будет ГРУДА вложенных селектов с внутренними проверками и использованием встроенных функций, повязанная джойнами, к тому же жестко привязанная к существующему на текущий момент количеству предметов в таблице предметов... Понимаешь, структура твоей БД не приспособлена для ТАКОЙ выборки ну просто никак... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
А что нужно поменять в стуктуре таблиц, чтобы упростить запрос! -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Delphist
Да понимаешь фигня-т какая... структура-то твоя правильная... а вот задача в том виде, в каком она поставлена, ни в какие ворота не лезет... Можно полюбопытствовать - какая польза от такого запроса? какой смысл вылавливать таких "двойников"? что с этим списком потом можно сделать? просто я не один год замдекана был - и никак не могу найти приложения такой задаче... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
В общем сталкнулся я с этой задачей в университете. У нас был курс по SQL. В книжке по которой мы учились содержала задание это задание. У препода спросил он не смог сделать! А я не как не могу успокоится как же делаются задачи такого рода! -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Через PIVOT TABLE. Однако у тебя задача усложнена необходимостью выборки по совпадению с одной из строк сводной таблицы. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Delphist |
|
||||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Что такое PIVOT TABLE -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
||||
|
|||||
ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 5 Всего: 252 |
2 Delphist
Сорри за оффтоп. Но послушай мой совет. Даже если решишь эту задачу - преподу не говори. От этого не ты поднимешься в его глазах, а он опустится. Делай выводы чем это будет чревато. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Вся эта канетель не для препода, а для себя лично. Просто интересно увидеть код выполняющий мою задачу. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |