powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрёстная таблица или сводный запрос
25 сообщений из 27, страница 1 из 2
перекрёстная таблица или сводный запрос
    #32404536
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток..
Без книжки забыл как это сделать!??
как это сделать в конструкторе запросов??

раздел1|раздел2|раздел3|раздел4| раздел5
----------------------------------------------------
знач1 | знач3 | знач5
знач2 | знач4 | знач6

имею таблицу
знач1_раздел1
знач2_раздел1
знач3_раздел2
знач4_раздел2
знач5_раздел3
знач6_раздел3
1)Соответственно я делаю запрос на выборку с двумя полями (знач,раздел)
нажимаю запрос-перекрёстный запрос... а далее!??
2)П.С. делал сводную таблицу- почти то ,что нужно ,только сортировка полей там идёт по "письменному" виду раздела, а не по его ключу.....
и не устраивает высота вывода "столбцов", ну и ширина тоже (кто знает подскажите и эту часть)
Премного благодарен, Влад
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32404593
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 - используй мастер перекрестного запроса
или устанавливай руками в поле "crosstab" конструктора
значение "заголовок строки/столбца/value"

2 - высота-ширина регулируется ручками
а для сортировки
используй в запросе вычисляемое поле "твойключ" & "имяраздела"
и выводи в сводной таблице именно его
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410299
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток!
мой вопрос остался неудовлетворёным...
попролбую ещё раз.....
есть таблица (для простоты)
--------------------
месяц___/__сезон
-------------------
декабрь_/__зима
январь__/__зима
февраль_/__зима
март____/__весна
апрель__/__весна
май_____/__весна
июнь____/__лето
июль____/__лето
август__/__лето
сентябрь/__осень
октябрь_/__осень
ноябрь__/__осень
Нужно получить запрос (или таблицу)
-----------------------------------------
зима____/__весна__/__лето__/__осень
-----------------------------------------
декабрь_/__март___/__июнь__/__сентябрь
январь__/__апрель_/__июль__/__октябрь
февраль_/__май___/__август_/__ноябрь

Как это можно реализовать!???
(похоже на перекрёстный запрос, но как его сделать-не понял)
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410327
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TRANSFORM First(sMonth) AS mmm
SELECT sSeason
FROM (SELECT m1.nOrder,m1.sMonth,m1.sSeason,count(m2.nOrder) as ccc
FROM Months as m1 inner join Months as m2 on m2.sSeason=m1.sSeason and m2.nOrder<=m1.nOrder
group by m1.nOrder,m1.sMonth,m1.sSeason
order by m1.nOrder)
GROUP BY sSeason
PIVOT ccc

В предположении, что в таблице Months есть поля nOrder, sMonth, sSeason.
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410355
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В.С. нет... nOrder у меня нет.......мне для визуальной наглядности нужно сделать таблицу/запрос , где каждое поле иммет отдельное условие отбора типа
SELECT месяц.ПоСезонам AS зима
FROM ПоСезонам
WHERE сезон.ПоСезонам=зима

SELECT месяц.ПоСезонам AS весна
FROM ПоСезонам
WHERE сезон.ПоСезонам=весна
.......
лето
.......
осень
.....
таким образом можно заполнить таблицу.....
Я правильно понял как это можно мделать!?? или есть другие предложения....??
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410392
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если нет nOrder, то можно вместо него подставить sMonth. Но тогда порядок значений в строке будет не гарантирован.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TRANSFORM First(sMonth) AS mmm
SELECT sSeason
FROM (SELECT m1.sMonth,m1.sSeason,count(m2.sMonth) as ccc
FROM Months as m1 inner join Months as m2 on m2.sSeason=m1.sSeason and m2.sMonth<=m1.sMonth
group by m1.sMonth,m1.sSeason)
GROUP BY sSeason
PIVOT ccc
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410567
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не... это чуть чуть не так.....
получилось:
sSeason 1 2 3
весна апрель май март
зима декабрь февраль январь
лето август июль июнь
осень ноябрь октябрь сентябрь

а нужно в столбцы , а не в строки....
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410572
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял. Белый верх, черный низ есть? Есть.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TRANSFORM First(sMonth) AS mmm
SELECT ccc
FROM (SELECT m1.sMonth,m1.sSeason,count(m2.sMonth) as ccc
FROM Months as m1 inner join Months as m2 on m2.sSeason=m1.sSeason and m2.sMonth<=m1.sMonth
group by m1.sMonth,m1.sSeason)
GROUP BY ccc
PIVOT sSeason;
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410592
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делает почти как я хочу!!!!!!!!!

ccc весна зима лето осень
1 апрель декабрь август ноябрь
2 май февраль июль октябрь
3 март январь июнь сентябрь

но как бы сделать сортировку столбцов такую же как у меня идёт в таблице...
т.е.
зима, весна, лето, осень
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410606
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TRANSFORM First(sMonth) AS mmm
SELECT ccc
FROM (SELECT m1.sMonth,m1.sSeason,count(m2.sMonth) as ccc
FROM Months as m1 inner join Months as m2 on m2.sSeason=m1.sSeason and m2.sMonth<=m1.sMonth
group by m1.sMonth,m1.sSeason)
GROUP BY ccc
PIVOT sSeason
In ( "зима" , "весна" , "лето" , "осень" );
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410608
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Так, глядишь, я скоро SQL выучу...
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410746
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В.С. Спасибо...... ( -)) так глядишь и я SQL ,без конструктора "весь" понимать начну.... )
я уже наглею....но всё же.... немогу слёту этот код преобразовать...
реально у меня 3 таблицы тЗнач , тРаздел , тСвязка
тЗнач
клЗнач
Знач

тРаздел
клРаздел
Раздел

тСвязка
клЗнач
клРаздел

Как сделать тоже самое из такой схемы!??? (сдесь же можно упорядочить столбцы по "клРаздел")- что мне и нужно.....
Только без 3 литров кваса у меня это не получатся..........
Премного благодарен, тому кто поможет.....(в перекрёстных запросах совсем не селён...а уж как давно и срочно нужно.... )

В.С. ещё раз СПАСИБО
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32410871
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуже моя наглость неимела границ-((( и никто не поможет добить этот злосчастный запрос!!??
Владимир Саныч, если ты здесь откликнись (правда столько квасу тебе уже не выпить....придётся открывать магазин-))......)
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32411128
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сорри, но я последнего вопроса просто не понял. Ну, дана какая-то структура таблиц... И что с ней делать? Она как-то соотносится с предыдущим вопросом?
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32411397
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч, доброе утро (по московскому)
эта структура соотносится в прямом смысле с таблицей Months
Знач=месяц
Раздел=Сезон


третья таблица- это связь многие ко многим между таблицами тЗнач и Раздел

Когда я задавал вопрос с месяцами и их сезонами я максимально упростил ситуацию и "наша " таблица Months явл запросом на выборку из этих трёх таблиц
SELECT тЗнач.значТ, тРаздел.раздел
FROM тЗнач, тРаздел, тСвязкаЗначРаздел
WHERE (((тСвязкаЗначРаздел.кодЗначение)=[тЗнач]![кодЗнач]) AND ((тСвязкаЗначРаздел.кодРаздел)=[тРаздел]![кодРаздел]));

или тоже самое, но мне менее понятно в режиме SQL

SELECT тЗнач.значТ, тРаздел.раздел
FROM (тЗнач INNER JOIN тСвязкаЗначРаздел ON тЗнач.кодЗнач = тСвязкаЗначРаздел.кодЗначение) INNER JOIN тРаздел ON тСвязкаЗначРаздел.кодРаздел = тРаздел.кодРаздел;

т.е итогом этих запросов будет таблица Month в которой поле months=ЗначТ
а поле Seasons=Раздел

Владимир Саныч, так я понятно написал!??
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32411407
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
описался

т.е итогом этих запросов будет таблица Months в которой поле smonth=ЗначТ
а поле sSeason=Раздел
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412044
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А в чем проблема? Пишем запрос, который должен являться аналогом таблицы Months. И подставляем его вместо Months в мой селект.
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412162
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В.С. я так и сделал...... (спасибо за отклик)
да осталась проблема сортировки столбцов (у меня их более 40 )
в ручную вводить - плохо , автоматически- как??? (запрос в VB сформировать могу ,а вот вывести его куда!??)
вот я и подумал, что если в это сделать в одном запросе, то можно будет поиграться клРаздел (=id_sSeason ) по которому и можно было бы отсортировать
П.С.
когда писал значения разделов "вручную" , то где то на десятом разделе ,который содержал "большое " количество символов запрос писал ошибку- пишет ,что "один или несколько столбцов содержат недопустимые заголовки столбцов" и не хочет воспринимать такие 3 столбца
(,"6)Видео-камеры системы CCTV, считыватели карт СКД, динамики системы оповещения","7)Серверы, активное сетевое оборудование, системы связи и телевизионные системы","8)Центральные кондиционеры, насосы, приточно-вытяжные установки, лифты"),
далее если переводишь в режим конструктора а затем куда-либо- аксесс пишет : "необходимо задать в строке групповых операций значение "Группировка" для поля со значением "заголовки столбцов" в строке "Перекрёстный" ". Такая ерунда, причём появляется после выполнения запроса при переходе в режим конструктора и обратно.
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412215
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
автор6)Видео-камеры системы CCTV, считыватели карт СКД, динамики системы оповещения
И вот это - это заголовок столбца??? Чур меня, чур меня...
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412225
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да , в данный момент они выглядят пока так........
а что с клРаздел уже ничего не придумать!???
да и запрос получается "статический"............
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412235
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
автора что с клРаздел уже ничего не придумать!???
А что с ним можно придумать? Я с этой системой не работал, для меня это такое же поле, как любое другое.

авторда и запрос получается "статический"............
Это с перекрестными запросами всегда так.
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412305
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
клРаздел- это идентификатор раздела
т.е.
idРаздел__Раздел==сезон
1-------- раздел1--зима
2-------- раздел2--весна
3-------- раздел3--лето
4-------- раздел4--осень
..................................
40.....
вот я и хочу что бы столбцы сортировались по "idРаздел" а прописывались названия разделов "Раздел"
ну не в ручную 40 штук писать
или я слишком много захотел...
т.е. запрос сделать типа:
(этот конечноже не работает)

TRANSFORM First(ЗначТ) AS mmm

SELECT ccc

FROM (SELECT m1.ЗначТ,m1.Раздел,count(m2.ЗначТ) as ccc

FROM Months as m1 inner join Months as m2 on m2.Раздел=m1.Раздел and m2.ЗначТ<=m1.ЗначТ

group by m1.ЗначТ,m1.Раздел)

GROUP BY ccc

PIVOT Раздел
IN(SELECT тРаздел.раздел FROM тРаздел ORDER BY тРаздел.кодРаздел)

где Months это запрос :

SELECT тЗнач.значТ, тРаздел.раздел
FROM (тЗнач INNER JOIN тСвязкаЗначРаздел ON тЗнач.кодЗнач = тСвязкаЗначРаздел.кодЗначение) INNER JOIN тРаздел ON тСвязкаЗначРаздел.кодРаздел = тРаздел.кодРаздел;
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412338
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но это делается только одним способом:
In ("зима","весна","лето","осень")

В конце концов, можно написать программу, которая будет это лепить динамически.
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412377
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно....
програмно в VBA строку запроса лепить практически нет проблем...., а вот кому это строку передать!????
можно програмно создать таблицу или запрос с "источником полей... или ..."= моя sql строка ??????
...
Рейтинг: 0 / 0
перекрёстная таблица или сводный запрос
    #32412581
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
currentdb.querydefs(имя).sql = строка
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрёстная таблица или сводный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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