【问题标题】:Microsoft Access 2007 Report with Conditional Columns带有条件列的 Microsoft Access 2007 报表
【发布时间】: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

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

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

【问题讨论】:

    标签: sql report ms-access-2007


    【解决方案1】:

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

    结果应该是这样的

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

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

    【讨论】:

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

    您必须分两步完成:

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

    让我们调用q这个查询。

    1. 构建第二个查询
    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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多