如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中

Posted

技术标签:

【中文标题】如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中【英文标题】:How to place 3 continuous row in to the 3 stacked row in single access report 【发布时间】:2019-03-23 15:53:37 【问题描述】:

我有多个员工在不同月份的表格格式的工资数据,如第三张和第二张图片所示。 (目前在以下图像示例中为单个员工提取)。每个员工有 35 个薪水字段/列,并且不同类型的工作档案的薪水头不同。第 3 和第 2 图像代表所有工作资料员工的工资数据表。因为表格有很多列,所以我在第三张和第二张图片中只发布了一张表格的两个部分。根据员工的工作资料,还有其他字段具有 0 值或大于 0 的值。我创建了一个查询,以根据第三张和第二张图像从表中提取单个员工的季度数据。

第一张图片是结果,我想将其排列为堆叠格式。目前我的报告在此报告中仅显示单月数据。报告加载事件代码仅显示值大于 0 的磁头,如下所示:

Dim C As Control

For Each C In Me.Report

If TypeOf C Is TextBox Then

        If IsNull(C) Or C = "" Or C = 0 Or C = "0" Then
            C.Visible = False
            C.Height = 0
        Else
            C.Visible = True
        End If
End If

我想根据报告图像显示结果如下。是否可以放置3个堆叠柱?感谢您的帮助和任何建议。

示例图片:

【问题讨论】:

您尝试提供的示例无法访问。 igorM.. 示例链接工作 那么实际的问题是什么?获取季度组数据的唯一问题是什么?这些图像不是很有用,因为列名非常神秘,并且列不包含任何日期值。问题表明“第二张图片”与在单页上打印季度数据有关,但它只有一堆零值……在我看来完全没用。最后,预计 *** 会显示您尝试过的内容以及为什么它不起作用。不要只是发布需求并寻求解决方案。 C perkins,我编辑了我的问题以清除我的查询。感谢您的任何建议 @user2245124 如果您想通知某个用户的评论,请输入@,后跟用户名...就像我为您的用户名所做的那样。否则他们可能永远不会知道你回复了。点击评论框旁边的帮助链接了解更多信息。 【参考方案1】:

考虑到您的表仅包含一年的工资,您可以对每个员工每季度的工资执行以下 SQL 查询

 SELECT
        EmployeeName
        ,SUM(IIF(Month([DateColumn]) BETWEEN 1 AND 3, Salary, 0)) AS Salary_Q1
        ,SUM(IIF(Month([DateColumn]) BETWEEN 4 AND 6, Salary, 0)) AS Salary_Q2
        ,SUM(IIF(Month([DateColumn]) BETWEEN 7 AND 9, Salary, 0)) AS Salary_Q3
        ,SUM(IIF(Month([DateColumn]) BETWEEN 10 AND 12, Salary, 0)) AS Salary_Q4
FROM TblSalary
GROUP BY EmployeeName              

【讨论】:

MS Access 没有CASE WHEN,您需要使用SWITCHIIF 您也可以使用iif(datepart("q", datecolumn)=1, Salary, 0) 等作为替代方案。 @igorM ...我想,你无法理解我的问题..我可以对查询进行分组,但问题是将 3 个月的行字段放在单个报告中的三列.. 每个报告的每个员工.. 看图片 @user2245124 提取月份的最简单方法通常是交叉表查询。完成所有其他工作,然后将报表底部设为子报表并绑定到交叉表查询。 crosstab和access下有很多在线教程 @mazoula 报告中有很多值字段要显示,交叉表只能显示单个值字段。所以请提供任何替代建议

以上是关于如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中的主要内容,如果未能解决你的问题,请参考以下文章

在单次迭代中对两个数组求和

使用 pyspark 在单次遍历数据中查找最小值/最大值

当该行的 clos 与上一行具有重复值时,如何进行 sql Select 查询,以便在后续行中将某些列留空?

我应该在单次选择后提交吗

SQL 查询 - 计算值大于 X 的连续行数

限制从 s-s-rS 中的数据库单次获取数据