powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Перекрестный запрос
15 сообщений из 15, страница 1 из 1
Перекрестный запрос
    #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
Перекрестный запрос
    #39434009
Если кол-во вариантов заранее не известно - явное указание заголовков не применяется.
Уберите in (423, 505, 601, 655, 707,...)
...
Рейтинг: 0 / 0
Перекрестный запрос
    #39434020
Анатолий ( Киев ),

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

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

Ну тогда так:
Код: sql
1.
SELECT Name, RecID, ShortName FROM tTable WHERE RecID in (423, 505, 601, 655, 707, ... nnn)
...
Рейтинг: 0 / 0
Перекрестный запрос
    #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
Перекрестный запрос
    #39434081
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ Не мемберМне надо непременно Name получить в столбцах, и одной строкой. А у меня все в разброс получается.Не понял...
Ты нарисуй табличку, что есть и что должно получится. Пользуйся тэгами или приложи пример в виде файла access.
...
Рейтинг: 0 / 0
Перекрестный запрос
    #39434086
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ Не мембер
Код: sql
1.
TRANSFORM

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

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

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

Да, конечно, нужно максимум три-четыре десятка столбцов.
И результирующие данные будут выводятся в шаблон Экселя.
...
Рейтинг: 0 / 0
Перекрестный запрос
    #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
Перекрестный запрос
    #39434146
Панург,

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


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