Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 对分组报告进行排序_Sorting_Ms Access_Report_Grouping - Fatal编程技术网

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 ASC

n.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订购;在报告布局中,按顺序排序,然后按其他值分组,您应该会得到所需的内容。在这种情况下,您可能希望使用此代码编辑您的原始答案,因为这根本不是您建议的内容。。。我会用我的数据试试,然后再给你回复。哎呀!对不起,弄错了。我编辑了原始答案,希望对你有所帮助!