首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Access中查询两个表并使用记录数据作为列标题?

在Access中查询两个表并使用记录数据作为列标题?
EN

Stack Overflow用户
提问于 2012-07-26 20:06:43
回答 1查看 4K关注 0票数 0

这个网站对我为工作创建的这个数据库非常有帮助,我有很多VB知识,但SQL很少。

我正在创建一个cisco IP电话的数据库,其中记录了MAC、序列号以及它们被分配到的站点id。

我的经理现在决定再次更改我的应用程序的目标帖子,并要求我创建一个表单,以一种我不知道该怎么做的方式显示数据。

他们现在想要的,我也希望以某种方式实现的是创建一条sql语句,通过站点id获取手机数量的计数,然后将该数字与另一个表中的数据进行比较。

以下是我们需要使用的字段:

代码语言:javascript
复制
TABLE 1
Handset_Type
Handset_Site_Id

TABLE 2
Handset_Type
Handset_Site_Id

这就是我想要的数据显示方式

代码语言:javascript
复制
SITE ID        | Handset_Type1      | Handset_Type1 
Handset_Site_id1 |COUNT TYPE1 FROM T1|COUNT TYPE1 FROM T2 
Handset_Site_id2 |COUNT TYPE1 FROM T1|COUNT TYPE1 FROM T2 

如果我们可以使用Handset_type字段中的数据来创建列标题,那么这将是很好的,因为只有几种型号的电话,但是如果它们是静态列,那么也可以。

我希望我已经解释了这一点,因为我可以看到这可能是复杂的理解。

如果你有任何建议,请让我知道

谢谢

史蒂夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 22:03:00

如果我对问题的理解是正确的,您希望显示每个站点ID的两个表中的记录计数,并将手机类型和源表作为列标题。

第一步是将您的表格合并为一个表格,创建一个表示手机类型和来源表格的列:

代码语言:javascript
复制
SELECT Handset_Type & " in T1" as TypeFromT, Handset_Site_Id FROM [Table 1]
UNION ALL
SELECT Handset_Type & " in T2" as TypeFromT, Handset_Site_Id FROM [Table 2]

这将形成交叉表的内部查询。交叉表的语法可能有点棘手,所以我通常在设计视图中构建我的交叉表。我们将TypeFromT定义为新的列标题,并使用Handset_Site_Id作为行分组和计数字段:

代码语言:javascript
复制
TRANSFORM Count(SubQry.Handset_Site_Id) AS SiteIDCount
SELECT SubQry.Handset_Site_Id
FROM (
    SELECT Handset_Type & " in T1" as TypeFromT, Handset_Site_Id FROM [Table 1]
    UNION ALL
    SELECT Handset_Type & " in T2" as TypeFromT, Handset_Site_Id FROM [Table 2]
) AS SubQry
GROUP BY SubQry.Handset_Site_Id
PIVOT SubQry.TypeFromT;

唯一的问题是,如果特定手持设备类型、源表和站点ID的条目为零,则结果值将为null而不是0。如果这是不需要的,请用Nz(Count(SubQry.Handset_Site_Id),0)替换Count(SubQry.Handset_Site_Id)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11668936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档