Добрый день. Подскажите имеется ли техническая возможность создания перекрестного запроса, где одним из аргументов являются данный другого запроса на выборку состоящие из одного столбца? Или использование опять же данных запроса на выборку в вычисляемом запросе? При этом количество в данных в столбце запроса на выборку заранее не известно. Спасибо.
Добрый день. Подскажите имеется ли техническая возможность создания перекрестного запроса, где одним из аргументов являются данный другого запроса на выборку состоящие из одного столбца? Или использование опять же данных запроса на выборку в вычисляемом запросе? При этом количество в данных в столбце запроса на выборку заранее не известно. Спасибо.Sashagor1982
В наборе записей, по которому строится перекрестный запрос, должно быть как минимум два столбца, значения которых станут заголовками строк и заголовками столбцов перекрестного запроса. И далее можно посчитать по COUNT кол-ва на пересечении заголовков. Лучше, чтобы столбцов было как минимум три, например, Клиенты, Года, Суммы. Тогда на пересечении Клиентов и Годов можно посчитать SUM(Суммы).
Для чего создавать перекрестный запрос для одного столбца? Посчитать COUNT по нему? Так зачем тогда перекрестный, делайте обычный GROUP BY.
Простыми словами можете озвучить, что хотите получить?
В наборе записей, по которому строится перекрестный запрос, должно быть как минимум два столбца, значения которых станут заголовками строк и заголовками столбцов перекрестного запроса. И далее можно посчитать по COUNT кол-ва на пересечении заголовков. Лучше, чтобы столбцов было как минимум три, например, Клиенты, Года, Суммы. Тогда на пересечении Клиентов и Годов можно посчитать SUM(Суммы).
Для чего создавать перекрестный запрос для одного столбца? Посчитать COUNT по нему? Так зачем тогда перекрестный, делайте обычный GROUP BY.
Простыми словами можете озвучить, что хотите получить?Gustav
Суть задачи следующая, допустим у меня есть основная таблица, в ней список учащихся со специальностями и годом набора и статус (учится или нет). Необходим перекрестный запрос в котором названия строк это специальности, названия столбцов это года набора учеников который учатся в данный момент, т.е статус - учится, а значение их количество, так вот года набора учеников мне заранее не известны, они являются следствием выполнения другого запроса. Вот такую задачу необходимо решить.
Суть задачи следующая, допустим у меня есть основная таблица, в ней список учащихся со специальностями и годом набора и статус (учится или нет). Необходим перекрестный запрос в котором названия строк это специальности, названия столбцов это года набора учеников который учатся в данный момент, т.е статус - учится, а значение их количество, так вот года набора учеников мне заранее не известны, они являются следствием выполнения другого запроса. Вот такую задачу необходимо решить.Sashagor1982
Сообщение отредактировал Sashagor1982 - Пятница, 19.05.2023, 21:51
Сгенерировал пример. Создал таблицу с тестовыми данными (см. в прилагаемом файле Excel). "Таблица1" содержит поля "Специальность", "Год набора" и "Учится?" (Да/Нет). У меня в примере это таблица, но с таким же успехом это может быть запрос, построенный над какой-либо таблицей или другим запросом (или несколькими последовательными другими запросами "друг над другом"). Т.е. "Таблица1" представляет собой некий набор записей, который получен тем или иным способом к моменту выполнения перекрестного запроса, который будет применен по отношению к данным этой "таблицы" (в общем случае виртуальной).
Вот такой текст запроса SQL получился: [vba]
Код
TRANSFORM Count([Учится?]) SELECT Специальность FROM Таблица1 WHERE [Учится?]="Да" GROUP BY Специальность ORDER BY Специальность, [Год набора] PIVOT [Год набора]
[/vba]
А результат выполнения такого запроса показан в прилагаемом файле на листе "Перекрестный". Похоже на правду?
Сгенерировал пример. Создал таблицу с тестовыми данными (см. в прилагаемом файле Excel). "Таблица1" содержит поля "Специальность", "Год набора" и "Учится?" (Да/Нет). У меня в примере это таблица, но с таким же успехом это может быть запрос, построенный над какой-либо таблицей или другим запросом (или несколькими последовательными другими запросами "друг над другом"). Т.е. "Таблица1" представляет собой некий набор записей, который получен тем или иным способом к моменту выполнения перекрестного запроса, который будет применен по отношению к данным этой "таблицы" (в общем случае виртуальной).
Вот такой текст запроса SQL получился: [vba]
Код
TRANSFORM Count([Учится?]) SELECT Специальность FROM Таблица1 WHERE [Учится?]="Да" GROUP BY Специальность ORDER BY Специальность, [Год набора] PIVOT [Год набора]
[/vba]
А результат выполнения такого запроса показан в прилагаемом файле на листе "Перекрестный". Похоже на правду?Gustav