Sorting 对分组报告进行排序
我的模式看起来有点像这样:Sorting 对分组报告进行排序,sorting,ms-access,report,grouping,Sorting,Ms Access,Report,Grouping,我的模式看起来有点像这样: SEQ GROUP1 GROUP2 GROUP3 VALUE 其中,SEQ大致相当于行号(实际上是外部表中的排序顺序),GROUPx字段进一步描述了数据。例如: SEQ GROUP1 GROUP2 GROUP3 VALUE ---- ------- ------- ------- ------ 1 A A A 123 2 A A A 456 3 A
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
我希望此数据按此层次结构分组,但按顺序排序。因此,上述数据将生成如下报告:
A
A
A
123
456
B
C
foo
D
baz
X
Y
Z
bar
我一直在玩报告的分组和排序选项,我似乎能够让它排序但不分组,或分组但不排序
例如,如果我指定:
分组1
分组2
分组3
按顺序订购
分组级别字段中的值确定数据的输出顺序。在本例中,我选择的名称按字母顺序排列,但如果我将GROUP1中的X名称更改为123,它将显示在报告的顶部
如果我将顺序按顺序移动到最高优先级,则顺序是正确的,但分组级别被打破:Access基本上将顺序字段视为分组级别,然后对该组中的每个值重复后续层次结构
有没有什么方法可以实现我想要的,而不需要为每个GROUPx字段设置一个SEQx字段,而不是我当前的全局SEQ?我想你必须在这个问题上进行左连接。首先,只使用SEQ创建一个查询,并按SEQ排序。然后按查询将您的组左键连接到第一个查询,以便它保持正确的顺序。有道理吗 您的查询代码应大致为:
SELECT
First(B.SEQ) AS FirstOfSEQ, tblTest.Group1, tblTest.Group2, tblTest.Group3, tblTest.Val AS Val2 FROM (SELECT tblTest.SEQ FROM tblTest ORDER BY tblTest.SEQ) AS B
LEFT JOIN tblTest ON B.SEQ = tblTest.SEQ
GROUP BY tblTest.Group1, tblTest.Group2, tblTest.Group3, tblTest.Val
ORDER BY First(B.SEQ);
在报告布局中,按顺序对其排序,然后按其他值对其进行分组,您应该可以得到所需的内容 我自己解决了这个问题 选择TimeOffRequestID,yourname作为员工姓名,ReplaceForwardCalls作为“选择一个”,“语音邮件”作为转发呼叫,约会作为来自dbo.nei_TimeOffRequest的评论 其中CASTCONVERTVARCHAR,GETDATE,101作为开始和结束之间的日期时间
ORDER BY yourname ASCn.b.,Access报告中的Group BY与SQL Group BY子句不同。对于微软来说,这是一个糟糕的措辞选择;也许安排或直接安排会更好……我的观点是你的解决方案不相关。然而,我很感激,所以谢谢你:这对我来说绝对有效:选择FirstB.SEQ作为FirstOfSEQ,tblTest.Group1,tblTest.Group2,tblTest.Group3,tblTest.Val作为Val2,从选择tblTest.SEQ到tblTest.SEQ,从tblTest.SEQ到B左加入tblTest.SEQ上的tblTest.SEQ,从tblTest.Group1,tblTest.Group2,tblTest.Group3,tblTest.Val由FirstB.SEQ订购;在报告布局中,按顺序排序,然后按其他值分组,您应该会得到所需的内容。在这种情况下,您可能希望使用此代码编辑您的原始答案,因为这根本不是您建议的内容。。。我会用我的数据试试,然后再给你回复。哎呀!对不起,弄错了。我编辑了原始答案,希望对你有所帮助!