powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сгруппировать значения в отчете Access в одной ячейке с выражением
16 сообщений из 16, страница 1 из 1
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105689
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!
Прошу помочь, не могу сообразить, как правильно сделать запрос в Access, что бы получить результат с групперовкой по одному из полей ( в примере это "Категория защитности")

Таблица (правда в excel) во вложении.

В итоге нужно получить группировку по категории защитности для каждого из кварталов с перечислением через запятую выделов. См. пример

Я так понимаю, что при создании отчета нужно использовать выражение, которая будет формировать список выделов через зяпятую.
В остальном результат просто группировать при запросе.

Часть таблицы в Access могу выложить вечером.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105694
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я возможно не корректно поставил конечную цель, тогда спрашивайте, обязательно поясню.

Модератор: Тема перенесена из форума "Microsoft Office".
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105844
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105852
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105869
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы пишите 1,3 (а где 2?) или надо 1,2,3
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39105871
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как Вы хотите: 1-3 или 1,2,3
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106035
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идеально чтобы 1-3, 5, 7-9
Но можно и 1, 2, 3, 4 ... Вполне.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106037
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это вообще это можно сделать в Access?
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106039
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часть рабочей таблицы во вложении
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106133
Bug1987Идеально чтобы 1-3, 5, 7-9
См. вложение.
Исходная таблица Tabl.
Результат формируется и помещается в таблицу tabWork процедурой ConcatVidel общего модуля Module1.

Замечание. Access "немного" отличается от Excel, поэтому Вам для начала необходимо почитать хотя бы о нормализации структур БД и применить прочитанное к своей БД.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106374
Bug1987, так вам надо в отчете или в запросе? В отчете это можно сделать иначе.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106389
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Практикант-....Замечание. Access "немного" отличается от Excel, поэтому Вам для начала необходимо почитать хотя бы о нормализации структур БД и применить прочитанное к своей БД.+100
При другой структуре подобный вопрос даже не возник бы (а какой гемор будет при развитии БД или даже создании запросов...)
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39106820
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),

В запросе, потом выгрузить в Excel для вставки в общий документ.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39107256
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется что-то типо сводной таблицы.
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39107257
Bug1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-Практикант-, не совсем понял как работает модуль (
...
Рейтинг: 0 / 0
Как сгруппировать значения в отчете Access в одной ячейке с выражением
    #39107326
Bug1987-Практикант-, не совсем понял как работает модуль (
Судя по вопросу, с процедурой не сложилось.
Попробуйте найти консенсус с запросом
Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT Z.Лесничество, Z.Квартал, Z.Категория, Last(UnionStr2(Z.id, Z.fp)) AS Выделы
FROM (SELECT Q1.Лесничество, Q1.Квартал, Q1.Категория, Q1.Выдел AS bp, 
             Min(Q2.Выдел) AS ep,  
             Q1.Лесничество & '|' & Q1.Квартал & '|' & Q1.Категория As id,
             IIf(bp = ep, bp, bp & '-' & ep) As fp
     FROM (SELECT T1.Лесничество, T1.Квартал, T1.Категория, T1.Выдел
          FROM Tabl AS T1 LEFT JOIN Tabl AS T2 
               ON (T1.Лесничество = T2.Лесничество) AND (T1.Квартал = T2.Квартал) AND 
                  (T1.Категория = T2.Категория) AND (T1.Выдел = T2.Выдел+1)
          WHERE T2.Выдел Is Null) AS Q1 
     INNER JOIN 
          (SELECT T1.Лесничество, T1.Квартал, T1.Категория, T1.Выдел
          FROM Tabl AS T1 LEFT JOIN Tabl AS T2 
               ON (T1.Лесничество = T2.Лесничество) AND (T1.Квартал = T2.Квартал) AND 
                  (T1.Категория = T2.Категория) AND (T1.Выдел = T2.Выдел-1)
          WHERE T2.Выдел Is Null) AS Q2 
     ON (Q1.Выдел <= Q2.Выдел) AND (Q1.Категория = Q2.Категория) AND 
        (Q1.Квартал = Q2.Квартал) AND (Q1.Лесничество = Q2.Лесничество)
     GROUP BY Q1.Лесничество, Q1.Квартал, Q1.Категория, Q1.Выдел) AS Z
WHERE UnionStr2()
GROUP BY Z.Лесничество, Z.Квартал, Z.Категория


Довеском к запросу является функция
Функция
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function UnionStr2(Optional ID, Optional Fam)
Static IDOld, FamUnion
  If IsMissing(ID) Then
    IDOld = Empty
    UnionStr2 = True
    Exit Function
  End If
  If IDOld <> ID Then
    IDOld = ID
    FamUnion = Null
  End If
  FamUnion = (FamUnion + ",") & Fam
  UnionStr2 = FamUnion
End Function


которую следует поместить в общий модуль.

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


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