![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
В БД есть две таблицы:
table1 t1 Код:
Код:
Вариант навскидку псевдокодом: Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так можно
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 24.05.2016 в 16:33. |
![]() |
![]() |
![]() |
#3 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Спасибо
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#4 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Подниму свою тему с новым вопросом.
Есть таблица. В ней есть столбец (field1), в котором могут быть значения "ААА", "BBB", "ССС" и т.д. в любом количестве и порядке. Также есть столбец (field2), в котором указан приоритет. Код:
Правило для выбора строки: если в field1 есть значения "ВВВ", то возвращается строка, содержащая в field1 значение "BBB" и обладающая максимальным приоритетом (field2). Если же значения "ВВВ" нет, то вернуть значения для строки, обладающей максимальным приоритетом. Т.е. в итоге мне нужно получить в качестве присоединяемой таблицу: Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А в какую не ту? Не вижу. Для сиквела можно было бы примерно так. Естесно не проверял, без гарантий
![]() Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Пытался прикрутить join внутри case - не получилось.
Пытался прикрутить его же в if - не получилось. Пытался как-то фильтровать результаты через case - не получилось. Пытался пробовать distinct`ы, group by и прочее - не получилось. Т.е. понять, есть значение "BBB" в field1 или нет я смог, а вот применить это знание для фильтрации уже нет. Если я правильно понял логику, то в примере (с учетом опечаток) происходит так: 1. Выбираются максимальные значения поля field2 для field1 = "BBB" и вообще максимальное. 2. В результирующей таблице проверяется наличие записи с "ВВВ", если она есть - возвращается соответствующее значение, если нет - то возвращается значение для максимального field2 3. Также возвращаются field0 и максимальный field2 Интересный алгоритм, еще раз спасибо. Попробую применить.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 01.03.2013
Сообщений: 22
|
![]()
1.а обязательно заталкивать всю логику в один селект?
2.ваш пример не соответствует описанной логике. Последний раз редактировалось varich; 05.06.2016 в 18:40. |
![]() |
![]() |
![]() |
#8 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Было крайне желательно, чтобы вся эта радость выполнялось одним запросом, т.к. результат этого SELECT`a джойнился еще к куче таблиц.
Она и выполнилась, спасибо Аватар`у с его алгоритмом выборки. А несоответствие примера - можете сказать, в чем конкретно?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Соединение 3-х таблиц оператором Join | Lokos | БД в Delphi | 2 | 08.04.2013 09:58 |
inner join/full join | SashkaSonin | БД в Delphi | 6 | 23.03.2012 17:13 |
Join(запрос) | clbman | SQL, базы данных | 8 | 14.06.2010 15:52 |
UNION JOIN | tools | SQL, базы данных | 0 | 05.06.2010 18:20 |
join | wall66 | SQL, базы данных | 2 | 10.11.2008 16:44 |