Моя схема выглядит немного как это:Сортировка сгруппированный отчет
SEQ GROUP1 GROUP2 GROUP3 VALUE
Где SEQ
примерно соответствует номеру строки - это на самом деле порядок сортировки из внешней таблицы - и GROUPx
поля очертить данные далее. Так, например:
SEQ GROUP1 GROUP2 GROUP3 VALUE
---- ------- ------- ------- ------
1 A A A 123
2 A A A 456
3 A B C foo
5 X Y Z bar
4 A B D baz
Я хотел бы эти данные, сгруппированные в этой иерархии, но по заказу SEQ
. Таким образом, приведенные выше данные будут производить такой отчет:
A
A
A
123
456
B
C
foo
D
baz
X
Y
Z
bar
Я играл с «группировки и сортировки» варианты доклада и я, кажется, чтобы быть в состоянии иметь его заказали, но не сгруппированы, или сгруппированные но не заказано!
Например, если указать:
- Группа по
GROUP1
- Группа по
GROUP2
- группы по
GROUP3
- Сортировать по
SEQ
- Сортировать по
- группы по
- Группа по
Значения в полях уровня группировки определяют порядок, в котором данные выходит. (В этом случае имена я выбрал в алфавитном порядке в любом случае, но если бы я изменил название X
в GROUP1
к 123
, казалось бы, прямо в верхней части отчета.)
Если я двигаю «Сортировать по SEQ
» с наивысшим приоритетом, порядок верен, но уровни группировки нарушены: доступ в основном обрабатывает поле SEQ
как уровень группировки, а затем последующая иерархия повторяется для каждого значения в этой группе.
Есть ли способ достичь того, что я ищу, не имея поля SEQx
для каждого поля GROUPx
(а не моего текущего «глобального» SEQ
)?
Н.Б., "Группе" в отчете Access не то же самое, как SQL 'GROUP BY'. Это плохой выбор слов со стороны Microsoft; возможно, «Упорядочить по» или «Голова» будет лучше ... – Xophmeister
... Я считаю, что ваше решение не имеет значения. Тем не менее, это ценно, так что спасибо :) – Xophmeister
Это абсолютно работало для меня: SELECT First (B.SEQ) AS FirstOfSEQ, tblTest.Group1, tblTest.Group2, tblTest.Group3, tblTest.Val AS Val2 FROM (SELECT tblTest.SEQ ОТ tblTest ORDER BY tblTest.SEQ) КАК Б LEFT JOIN tblTest ПО B.SEQ = tblTest.SEQ GROUP BY tblTest.Group1, tblTest.Group2, tblTest.Group3, tblTest.Val ORDER BY First (B.SEQ); В макете отчета закажите его по SEQ, затем сгруппируйте его по другим значениям и получите то, что вам нужно. –