|
Как получить запросом таблицу вида... | ☑ | ||
---|---|---|---|---|
0
kuromanlich
27.09.13
✎
16:33
|
Имеется:
таблица есть 05 04 10 09 20 19 25 24 таблица надо - 04 05 09 10 19 20 24 25 - |
|||
1
Лефмихалыч
27.09.13
✎
16:41
|
ищи по форуму "Нумерация строк в запросе" и "Нарастающий итог в запросе"
|
|||
2
Fragster
модератор
27.09.13
✎
17:00
|
нумерация не нужна
|
|||
3
Fragster
модератор
27.09.13
✎
17:00
|
(0) разница всегда = 1?
|
|||
4
kuromanlich
27.09.13
✎
17:21
|
(3) да
|
|||
5
kuromanlich
27.09.13
✎
17:23
|
(2) по идее добившись нумерации можно связать с учетом того, что нужное находится в строке с номером +1
|
|||
6
Зойч
27.09.13
✎
17:25
|
выбрать Поле1, Поле1 - 1
|
|||
7
Dzenn
гуру
27.09.13
✎
17:27
|
кмк никак. Юзай таблицы значений
|
|||
8
mikecool
27.09.13
✎
17:28
|
да, без rowcount() имхо не справиться
|
|||
9
Fragster
модератор
27.09.13
✎
17:31
|
(4) полное соединение само с собой по условию таб1.поле1 = таб2.поле2-1
|
|||
10
Fragster
модератор
27.09.13
✎
17:31
|
ну, или как-то так
|
|||
11
discovery science
27.09.13
✎
17:35
|
да, часто такое надо
только все равно потом что-то допиливать |
|||
12
discovery science
27.09.13
✎
17:38
|
а оно всегда так?
05 04 10 09 20 19 25 24 1*5 5*1-1 2*5 5*2-1 4*5 5*2-1 5*5 5*5-1 ? |
|||
13
discovery science
27.09.13
✎
17:39
|
т.е. чего 3 пропущено?
1*5 5*1-1 2*5 5*2-1 4*5 5*4-1 5*5 5*5-1 |
|||
14
kuromanlich
27.09.13
✎
17:40
|
(12) (13) нет никакой связи, просто набирал так
|
|||
15
discovery science
27.09.13
✎
17:42
|
(14) угу, сдвинуть запросом
|
|||
16
discovery science
27.09.13
✎
17:57
|
(9) да, только нужна нумерация
|
|||
17
Fragster
модератор
27.09.13
✎
17:58
|
(16) не нужна
|
|||
18
PVV65
27.09.13
✎
18:07
|
(0) Это такой прикол - все задачи решать запросом?
|
|||
19
Fragster
модератор
27.09.13
✎
18:08
|
ВЫБРАТЬ
4 КАК Поле1, 5 КАК Поле2 ПОМЕСТИТЬ Данные ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9, 10 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 20, 21 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Данные1.Поле2 КАК Поле1, Данные2.Поле1 КАК Поле2 ИЗ Данные КАК Данные1 ПОЛНОЕ СОЕДИНЕНИЕ Данные КАК Данные2 ПО (Данные2.Поле1 В (ВЫБРАТЬ ПЕРВЫЕ 1 Данные.Поле1 ИЗ Данные ГДЕ Данные.Поле1 > Данные1.Поле1 УПОРЯДОЧИТЬ ПО Данные.Поле1)) УПОРЯДОЧИТЬ ПО Поле1 |
|||
20
kuromanlich
27.09.13
✎
18:14
|
(19) пробовал так сначала, видать с условием перемудрил, не работало. попробую сейчас еще раз
|
|||
21
PVV65
27.09.13
✎
18:18
|
ВЫБРАТЬ
4 КАК Поле1, 5 КАК Поле2 ПОМЕСТИТЬ Данные ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9, 10 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 20, 21 ; Что это? |
|||
22
kuromanlich
27.09.13
✎
18:19
|
(21) создание тестовой таблицы для работы второго пакета в запросе
|
|||
23
Fragster
модератор
27.09.13
✎
18:26
|
вообще это извращение, правильнее исходные таблицы получить в более "прямом" виде
|
|||
24
Fragster
модератор
27.09.13
✎
18:26
|
кстати, в (19) второй запрос можно сделать таким:
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Данные1.Поле2 КАК Поле1, МИНИМУМ(Данные2.Поле1) КАК Поле2 ИЗ Данные КАК Данные1 ПОЛНОЕ СОЕДИНЕНИЕ Данные КАК Данные2 ПО (Данные2.Поле1 > Данные1.Поле1) СГРУППИРОВАТЬ ПО Данные1.Поле2 |
|||
25
kuromanlich
27.09.13
✎
18:28
|
(23) зуп "не очень оптимально" реализовал хранение информации...
|
|||
26
discovery science
27.09.13
✎
18:29
|
(24) шаман
|
|||
27
discovery science
27.09.13
✎
18:39
|
(18) если вот до 7-ки изучать запросы было где, такие вопросы бы не становились
|
|||
28
discovery science
27.09.13
✎
18:51
|
а теперь вот так :)
таблица есть 05 04 10 03 20 19 25 22 таблица надо - 04 05 03 10 19 20 22 25 - |
|||
29
kuromanlich
27.09.13
✎
19:00
|
(28) не мой случай
|
|||
30
Fragster
модератор
27.09.13
✎
19:01
|
(28) тогда нумеруй. или изучай, возможно из виртуальных таблиц таки можно правильные данные сразу получить
|
|||
31
kuromanlich
27.09.13
✎
19:02
|
||||
32
discovery science
27.09.13
✎
19:03
|
(31) его бы сразу универсальным, чтобы во второй таблице не строго меньше, на все случаи жизни
|
|||
33
Fragster
модератор
27.09.13
✎
19:05
|
(32) если одна из колонок упорядочена - то никаких проблем
|
|||
34
discovery science
27.09.13
✎
19:13
|
(33) в (28) то одна колонка упорядочена, то твой вариант уже не пашет
|
|||
35
Fragster
модератор
27.09.13
✎
19:17
|
(34) все пашет. у меня в (19) вариант, когда упорядочена колонка 4,9,20 (поле1, т.е. правая в примере). Переделать пол дуругю колонку догадаешься?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |