Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Перекрестный запрос / 15 сообщений из 15, страница 1 из 1
06.04.2017, 10:17
    #39433961
Перекрестный запрос
Здравствуйте, коллеги!
Не получается развернуть строки запроса в столбцы
Код: sql
1.
SELECT Name FROM tTable WHERE RecID in (423, 505, 601, 655, 707, ... nnn)


Количество строк N, т.е. заранее не известно (423, 505, 601, 655, 707, ... nnn)
Подскажите, пожалуйста, как решить задачку перекрестным запросом.
...
Рейтинг: 0 / 0
06.04.2017, 11:10
    #39434009
Перекрестный запрос
Если кол-во вариантов заранее не известно - явное указание заголовков не применяется.
Уберите in (423, 505, 601, 655, 707,...)
...
Рейтинг: 0 / 0
06.04.2017, 11:19
    #39434020
Перекрестный запрос
Анатолий ( Киев ),

К сожалению, запрос именно такой и убрать in не получается. И ADP тоже нет.
Думал, может существуют какие варианты решения..
...
Рейтинг: 0 / 0
06.04.2017, 11:26
    #39434025
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мемберНе получается развернуть строки запроса в столбцыНужен запрос с 3 (тремя) полями. Допустим 2 есть...
...
Рейтинг: 0 / 0
06.04.2017, 11:33
    #39434032
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мембер,

примерно так (делал как-то пример на материале заказчика)
...
Рейтинг: 0 / 0
06.04.2017, 11:39
    #39434040
Перекрестный запрос
Панург,

Ну тогда так:
Код: sql
1.
SELECT Name, RecID, ShortName FROM tTable WHERE RecID in (423, 505, 601, 655, 707, ... nnn)
...
Рейтинг: 0 / 0
06.04.2017, 11:45
    #39434047
Перекрестный запрос
Панург,

Спасибо, но это не совсем то, что нужно.
Мне надо непременно Name получить в столбцах, и одной строкой. А у меня все в разброс получается.
Делаю примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
TRANSFORM t.Name
SELECT t.Name
FROM
    ( SELECT Name, RegID FROM tTable WHERE RecID in (423, 505, 601, 655, 707, ... nnn) ) t
GROUP BY t.Name
ORDER BY t.Name
PIVOT t.RecID in (423, 505, 601, 655, 707, ... nnn)
...
Рейтинг: 0 / 0
06.04.2017, 12:18
    #39434081
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мемберМне надо непременно Name получить в столбцах, и одной строкой. А у меня все в разброс получается.Не понял...
Ты нарисуй табличку, что есть и что должно получится. Пользуйся тэгами или приложи пример в виде файла access.
...
Рейтинг: 0 / 0
06.04.2017, 12:23
    #39434086
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мембер
Код: sql
1.
TRANSFORM

должен быть со статистической функцией - First, Sum и т.д.
...
Рейтинг: 0 / 0
06.04.2017, 12:33
    #39434094
Перекрестный запрос
Панург,

Такая вот табличка, что есть и что должно получится.
...
Рейтинг: 0 / 0
06.04.2017, 12:39
    #39434098
Перекрестный запрос
Не прикрепилась картинка. Вот на хостинге
https://hostingkartinok.com/show-image.php?id=59b27e450f2929586720a2df89c6fa15

Что получается
"name""423""505""601""655""707""2-й квартал 2014""2-й квартал 2014""""""""""2-й квартал 2015""""""2-й квартал 2015""""""3-й квартал 2014""""3-й квартал 2014""""""""3-й квартал 2015""""""""3-й квартал 2015""""4-й квартал 2015""""""""""4-й квартал 2015"

Что должно быть
"423""505""601""655""707""2-й квартал 2014""2-й квартал 2015""3-й квартал 2014""3-й квартал 2015""4-й квартал 2015"
...
Рейтинг: 0 / 0
06.04.2017, 12:48
    #39434112
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мемберЧто должно быть
"423""505""601""655""707""2-й квартал 2014""2-й квартал 2015""3-й квартал 2014""3-й квартал 2015""4-й квартал 2015"

вы должны учесть, что аксесс с 254 столбиками -- это не ексель с 16000
а если захотите вывести в отчет --то не более 20-40(ибо ширина отчета не более 55см)
...
Рейтинг: 0 / 0
06.04.2017, 12:54
    #39434117
Перекрестный запрос
ПЕНСИОНЕРКА,

Да, конечно, нужно максимум три-четыре десятка столбцов.
И результирующие данные будут выводятся в шаблон Экселя.
...
Рейтинг: 0 / 0
06.04.2017, 13:07
    #39434126
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос
Товарищ Не мембер,
могу предложить такой запрос
Код: sql
1.
2.
3.
4.
5.
6.
TRANSFORM First(q.Name_) AS [First-Name]
SELECT q.Num
FROM (SELECT DISTINCT  Name_, RegID, 1 as Num FROM tTable) AS q
WHERE q.RegID In (423,505,601,655,707)
GROUP BY q.Num
PIVOT q.RegID;


num42350560165570712-й квартал 20142-й квартал 20153-й квартал 20143-й квартал 20154-й квартал 2015
...
Рейтинг: 0 / 0
06.04.2017, 13:30
    #39434146
Перекрестный запрос
Панург,

Просто замечательно получилось - всё как надо. Очень благодарен Вам! Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Перекрестный запрос / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]