带有条件列的 Microsoft Access 2007 报表

Posted

技术标签:

【中文标题】带有条件列的 Microsoft Access 2007 报表【英文标题】:Microsoft Access 2007 Report with Conditional Columns 【发布时间】:2014-12-01 21:17:45 【问题描述】:

我希望制作一个非常简单的报告来压缩并并排显示数据。我找到的所有报告示例都是逐行列出的。

我将使用的查询将只有三个模式“公司、模型、总计”

我想要的格式是

Company     Model     Total     Company     Model     Total
 A           123       2         B           123       4
 A           222       3         B           333       3
 A           444       7         B           444       7

我们的想法是以一种方式呈现信息,使多家公司可以并排比较同一型号的库存并找出差异。理想情况下,该报告最终会将涵盖所有***公司的所有模型归为一组,但这是下一代问题。

我已尝试对多个“公司”框进行条件格式设置,但条件似乎没有正确应用,或者由于某种原因,每个“公司”框都采用相同的条件。

【问题讨论】:

【参考方案1】:

我认为您想要一个按模型(rowHeader)分组的交叉表查询,company 作为列标题,first(total) 作为值。

结果应该是这样的

model   A total B total
123     2       4
222     3   
333             3
444     7       7

如果需要,您可以根据交叉表结果创建另一个查询来计算公司总数之间的差异。

【讨论】:

Crosstab Microsoft Support 这个链接似乎描述了你所拥有的东西,我很确定你正中了它。工作空闲时需要做一些实验,但感谢您的帮助!【参考方案2】:

您必须分两步完成:

    构建一个查询,为您提供:
 Company  Model   Total
 A         123    2
 A         222    3
 A         444    7
 B         123    4
 B         333    3
 B         444    7

让我们调用q这个查询。

    构建第二个查询
SELECT q1.Company, q1.Model, q1.Total, q1.Company, q2.Model, q2.Total
FROM q AS q1 INNER JOIN q AS q2 ON q1.Model = q2.Model
WHERE q1.company < q2.company;

这会给你:

 A    123   2   B   123   4  
 A    444   7   B   444   7

(222和333型号没有匹配的数据)

【讨论】:

不同公司的模型不一样 我没有忘记这个问题,需要拿到我的工作电脑前测试。此查询将遗漏仅出现在 1 家公司中的任何内容,但是是吗?还是我看错了 是的。如果你想拥有所有模型,你必须在查询中添加Model并将FROM q AS q1 INNER JOIN q AS q2 ON q1.Model = q2.Model替换为:FROM (Model LEFT JOIN q AS q1 ON Model.id = q1.model) LEFT JOIN q AS q2 ON Model.id = q2.Model

以上是关于带有条件列的 Microsoft Access 2007 报表的主要内容,如果未能解决你的问题,请参考以下文章

导入 Microsoft Access 数据库时保留自动编号列的值

Microsoft Access - 具有来自不同表的多个条件的 Dlookup

Microsoft Access Where Condition 在子窗体中不起作用

Microsoft Access 查询条件

使用 Access ODBC 创建带有 DECIMAL 列的表

Microsoft Access 查询输入条件