|
|
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
Толи праздники сказываются, толи лыжи не едут... Есть две таблицы 1-маршрут, 2-путевые точки. маршрут id_pathdate_pathdescription101.01.2010...202.01.2010...303.01.2010... Путевые точки (связь по id_path) id_wpid_pathlatlon()sort_idx111112122231333421115222262333735518366293773 Из примера видно, что маршруты с id_path 1 и 2 одинаковые. Координаты(lat и lon)и последовательность(sort_idx) точек у них совпадают. Нужно выбрать все не повторяющиеся маршруты. Либо 1 и 3, либо 2 и 3. Помогите ПЛЗ. Заранее благодарен всем откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 11:31 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
Задача достаточно нетривиальная. Реляционные БД плохо приспособлены для работы со множествами, так скажем совсем не приспособлены. Просто как подход. Необходимо сделать однозначную трансляцию матрицы (точек пути) в простое значение. Этим значением, например, может быть строковое представление пути. Хранить его можно в таблице маршрутов. id_pathdate_pathdescriptionstr101.01.2010...(1;1)->(2;2)->(3;3)202.01.2010...(1;1)->(2;2)->(3;3)303.01.2010...(5;5)->(6;6)->(7;7) Затем можно будет сделать просто запрос: Код: plaintext 1. 2. В качестве "простого значения" может быть не только строковая переменная, но и числовая, бинарная и т.п. Главное придумать однозначную обратимую функцию перевода массива в значение. Теоретически, его можно сделать хэшем приведенной строки. Но возникает опасность, когда совершенно два различных пути будут свернуты в один из-за того, что у них совпадет хэш. Потому требование об обратимости функции является обязательным. И вторая подзадача, обеспечить актуализацию соответствия маршрута и его "слепка". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 19:15 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
Спасибо iLLer, Идея с хэшами точек в таблице маршрутов - это первое что мне пришло в голову. Но я надеялся, что есть более простой способ. Но думаю что все таки придется использовать хэш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 22:12 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
Где вы тут работу с множествами увидали ? Нет её тут. Была бы -- SQL как раз бы и был в тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 23:51 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
cherrex_DenЛибо 1 и 3, либо 2 и 3. А с чего это ты решил, что 1 -- не повторяющийся ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 23:52 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
MasterZiv Где вы тут работу с множествами увидали ? Нет её тут. Была бы -- SQL как раз бы и был в тему. Та какая разница. Название задачи на ее решение не влияет. MasterZiv А с чего это ты решил, что 1 -- не повторяющийся ? Не понял я вопроса. Ну да, 1 и 2 повторяются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 00:35 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
On 08.11.2010 0:35, cherrex_Den wrote: > А с чего это ты решил, что 1 -- не повторяющийся ? > Не понял я вопроса. Ну да, 1 и 2 повторяются Так с чего ты хочешь, чтобы 1 был, а 2 -- не было. Они повторяются, оба. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 10:25 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
MasterZiv On 08.11.2010 0:35, cherrex_Den wrote: > А с чего это ты решил, что 1 -- не повторяющийся ? > Не понял я вопроса. Ну да, 1 и 2 повторяются Так с чего ты хочешь, чтобы 1 был, а 2 -- не было. Они повторяются, оба. Та любой из них! Ну допустим с максимальной датой(date_path). Т.е. 2-ой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 12:38 |
|
||
|
Сравнение множеств в ASE 15
|
|||
|---|---|---|---|
|
#18+
Можно двумя группировками через промежуточную таблиц 1 группировка по id_path Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 09:23 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=24&tid=2010479]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 165ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...