|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Добрый день! Задача состоит получить из таблицы вида DTSKLR31.05.2018 0:0511.5001.39631.05.2018 0:0621.5001.46031.05.2018 0:0831.5001.64431.05.2018 0:0941.5001.81031.05.2018 0:1011.6001.53631.05.2018 0:1121.6001.56331.05.2018 0:1331.6001.64531.05.2018 0:1441.6001.69631.05.2018 0:1650.9001.13931.05.2018 0:1661.0001.13931.05.2018 0:1811.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:2510.9001.52731.05.2018 0:2621.0001.52831.05.2018 0:2731.1001.59631.05.2018 0:2941.2001.91731.05.2018 0:3250.7001.528 таблицу DT1SK1L1R1DT2SK2L2R231.05.2018 0:0621.5001.46031.05.2018 0:0941.5001.81031.05.2018 0:1121.6001.56331.05.2018 0:1661.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:1921.2001.25931.05.2018 0:2621.0001.52831.05.2018 0:3250.7001.528 т.е. при отсортированных записях по дате склеиваются 2 строки: стока где поле SK=2 и строка где поле SK = максимальному локальному значению (в след строке уже SK = 1) Просьба поделится идеями. Спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:25 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983Просьба поделится идеями. Тривиальная задача на стороне клиентского приложения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:29 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovkaktus1983Просьба поделится идеями. Тривиальная задача на стороне клиентского приложения. клиентского приложения нет, впрочем и серверного тоже. это лишь звено в цепочке анализа информации в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:41 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983это лишь звено в цепочке анализа информации в БД Значит красивое представление в виде широкой таблицы не имеет смысла. Анализируй в вертикальном формате. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:44 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983Dimitry Sibiryakovпропущено... Тривиальная задача на стороне клиентского приложения. клиентского приложения нет, впрочем и серверного тоже. это лишь звено в цепочке анализа информации в БД Хотя, можно и ХП написать, но ХП все равно фиксированное число столбцов возвращает, тут разве что возвращать длинные строки с разделителями полей (или с полями фиксированной длины). Имхо, лучше на клиенте сделать, совсем несложно. Есть готовые библиотеки для "красивого" анализа, например - https://www.fastreport.ru/ru/product/fast-cube-2/ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:52 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, хорошо, согласен - можно обойтись и без развернутой таблицы. Задачу перефразирую: необходимо получить вторую часть таблицы: DT2SK2L2R231.05.2018 0:0941.5001.81031.05.2018 0:1661.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:3250.7001.528 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:53 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Котовасия, приложения нет, инженерный анализ при помощи IBExpert и Excel ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:57 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983Котовасия, приложения нет, инженерный анализ при помощи IBExpert и Excel Ну тем более. В IBExpert встроен FastReport, в том числе с кросс-табами. В MS Excel вообще что хочешь можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:58 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Котовасия, спасибо, посмотрю насчет FR в IBExpert, не знал. И все же, интересно, как запросом получить из исходной таблицы таблицу DT2SK2L2R231.05.2018 0:0941.5001.81031.05.2018 0:1661.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:3250.7001.528 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 16:04 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983Котовасия, спасибо, посмотрю насчет FR в IBExpert, не знал. И все же, интересно, как запросом получить из исходной таблицы таблицу DT2SK2L2R231.05.2018 0:0941.5001.81031.05.2018 0:1661.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:3250.7001.528 Если заранее не знаешь число выходных столбцов - то никак. Если знаешь - то методом изучения главы 6 книги Мартина Грабера: http://specfx.narod.ru/books/SQL_M_Gruber.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 16:09 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983, Хранимка или Execute Block. Внутри for select. Перебором находишь нужные значения, их присваиваешь в локальные переменные (8 штук). Когда ряд заполнится, делаешь suspend. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 16:26 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Какие прилежные студенты пошли. До сессии ещё 3 месяца, а уже напрягаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 18:13 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Котовасия, За книгу спасибо! Насчет кол-ва столбцов: для упрощения задача сводится к получению подмножества записей исходной таблицы путем выбора строк, где поле SK = максимальному локальному значению (в след строке уже SK = 1) Исходная: DTSKLR31.05.2018 0:0511.5001.39631.05.2018 0:0621.5001.46031.05.2018 0:0831.5001.64431.05.2018 0:0941.5001.81031.05.2018 0:1011.6001.53631.05.2018 0:1121.6001.56331.05.2018 0:1331.6001.64531.05.2018 0:1441.6001.69631.05.2018 0:1650.9001.13931.05.2018 0:1661.0001.13931.05.2018 0:1811.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:2510.9001.52731.05.2018 0:2621.0001.52831.05.2018 0:2731.1001.59631.05.2018 0:2941.2001.91731.05.2018 0:3250.7001.528 Результат: DTSKLR31.05.2018 0:0941.5001.81031.05.2018 0:1661.0001.13931.05.2018 0:1921.2001.25931.05.2018 0:3250.7001.528 Можно ли это сделать прямым запросом? с помощью SP или Execute Block как сделать знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 20:22 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
KreatorXXI, Такой вариант тоже пришел в голову, но есть предположение что можно это сделать проще ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 20:23 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка, у вас куда не глянь - одни студенты вокруг! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 20:27 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
kaktus1983, С его опытом, он вас даже без постов, просто по никам видит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 09:34 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
DT1SK1L1R1DT2SK2L2R231.05.2018 0:0621,501,4631.05.2018 0:0941,501,8131.05.2018 0:1121,601,5631.05.2018 0:1661,001,1431.05.2018 0:1921,201,2631.05.2018 0:1921,201,2631.05.2018 0:2621,001,5331.05.2018 0:3250,701,53 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 10:11 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
без оконных функций Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 14:38 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
court, прикольный запрос. Надо бы ещё индексы правильные сделать, если это вообще возможно. А то совсем неэффективно. Для реала не годиться, только может быть для изучения SQL. vvvait, ещё более неэффективнее. Притом, что выдаётся не совсем то, что нужно ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 15:12 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
KreatorXXI, авторЗадачу перефразирую: необходимо получить вторую часть таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 15:24 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
а если добавить индекс становится весьма оптимально CREATE INDEX T_IDX1 ON T (DT, SK); PLAN SORT ((M GRP T INDEX (T_IDX1))) PLAN JOIN (SORT (SORT (JOIN (M GRP T1 NATURAL, M GRP T2 INDEX (T_IDX1)))), T3 INDEX (T_IDX1)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 15:29 |
|
Запрос. Объединение нескольких записей в развернутую таблицу
|
|||
---|---|---|---|
#18+
vvvait, совсем другое дело. Но, всё равно, банальный однопроходный for select эффективнее будет, наверно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 10:07 |
|
|
start [/forum/topic.php?fid=40&fpage=29&tid=1560961]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 173ms |
0 / 0 |