繁体   English   中英

Microsoft Access 2003查询 - 计算记录并对其求和

[英]Microsoft Access 2003 Query - Count records and sum it

我正在使用Microsoft Access 2003创建查询并遇到问题。 我是新来的!

我有两张桌子。 第一个表,我有一个包含名称属性名称国家/地区状态的记录列表。 第二个表,我有一个属性名称列表, 属性中 的单位数和属性的国家/地区状态

我想计算第一个表中的状态记录数,同时总结该地产所在单位的数量。

我遇到的是,当我总结单位数时,单位重复!

举个例子;

表格1:

名称| 国家| 物业名称

先生1 | 州A | 建立AAA

先生2 | 州A | 建立AAA

先生3 | 州A | 建设BBB

先生4 | 州B | 建设XXX

先生5 | 州B | 建设XXX

表2:

物业名称| 国家| 单位的数量

建设AAA | 州A | 100

建设BBB | 州A | 50

建设XXX | 州B | 20

我的结果:

国家| 单位数| 没有记录

州A | 250 | 3

州B | 40 | 2

我想要的结果:

国家| 单位数| 没有记录

州A | 150 | 3

州B | 20 | 2

EXPANDED

假设您使用的是Access查询构建器,则需要构造三个Select查询:

1)Table1将是第一个查询的源表。 在查询中使用State字段两次,首先作为Group By字段,第二个作为Count字段。 (任何字段都可以用于计数,因为您只对记录数感兴趣。)保存查询以便在第三个查询中使用。

在此输入图像描述

2)Table2将是第二个查询的源表。 使用State字段作为Group By字段,Units字段作为Sum字段。 也保存此查询。

在此输入图像描述

3)第三个查询将把信息放在一起。 对于源,使用第一个和第二个查询,在State字段上使用它们之间的连接。 选择State字段(来自任一查询)作为Group By Field,将第一个查询中的CountOfState字段作为Sum字段,将第二个查询中的SumofUnits字段作为Sum字段。

在此输入图像描述

虽然Access在生成最终结果时所完成的实际工作量不会改变,但可以通过编辑基础SQL将这三个查询合并到一个查询中。

通过将Table1和Table2查询插入到第三个最终结果查询中来生成新查询,该查询位于INNER JOIN语句的任一侧。 新查询中的T1和T1是嵌入式查询的别名,可消除引用这些查询字段时的歧义。

无法使用查询生成器创建新查询(尽管原始的三个查询为其提供了原始材料)。 相反,必须在查询生成器的SQL视图中编写/粘贴/编辑SQL。

    SELECT T1.State AS State,
           Sum(T1.CountOfState) AS Records, 
           Sum(T2.SumOfUnits) AS Units
    FROM 
          (SELECT Table1.State, 
                  Count(Table1.State) AS CountOfState
           FROM Table1
           GROUP BY Table1.State) T1
    INNER JOIN 
           (SELECT Table2.State, 
                   Sum(Table2.Units) AS SumOfUnits
            FROM Table2
            GROUP BY Table2.State) T2
    ON T1.State = T2.State
    GROUP BY T1.State;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM