有人可以帮助我,我必须比较两个表,我的经理希望看到Access数据库中两个表之间的比较。两个表都包含IP电话,其类型,MAC以及分配给它们的站点ID。我的经理想要的是以一种形式查看这些数据。我知道我可以用两个子表单来做到这一点,但如果我能用一个sql语句来做它会好得多,因为我知道它可以完成,但我只是愚蠢地去做。我需要的是三列,第1列=手机类型,第2列=表1计数,第3列=表2计数:
Handset Type |TABLE 1 COUNT| TABLE 2 COUNT|
CISCO7911 | 100 | 50
CISCO7942 | 100 | 50
我目前只通过查询一个表来使用这两个列,但是如何添加最后一列,我尝试了UNION但是这会将数据添加到额外的行而不是另一列。
SELECT tbl_handsets.handset_type,
Count(IIf(handset_site_id='12345',1,Null)) AS myCompany_Number
FROM tbl_Handsets
GROUP BY tbl_handsets.handset_type
任何想法???
答案 0 :(得分:1)
如果您告诉我们此查询会返回您想要的Handset Type
和TABLE 1 COUNT
...
SELECT
handset_type,
Count(IIf(handset_site_id='12345',1,Null)) AS myCompany_Number
FROM tbl_Handsets
GROUP BY handset_type
...并将tbl_Accenture
替换为tbl_Handsets
,FROM
会返回您对Handset Type
和TABLE 2 COUNT
的所需内容,然后构建一个同时使用这两者的查询那些作为子查询并将它们中的两个连接在一起。
SELECT
t1.handset_type,
t1.myCompany_Number AS [TABLE 1 COUNT],
t2.myCompany_Number AS [TABLE 2 COUNT]
FROM
(
SELECT
handset_type,
Count(IIf(handset_site_id='12345',1,Null))
AS myCompany_Number
FROM tbl_Handsets
GROUP BY handset_type
) AS t1
INNER JOIN
(
SELECT
handset_type,
Count(IIf(handset_site_id='12345',1,Null))
AS myCompany_Number
FROM tbl_Accenture
GROUP BY handset_type
) AS t2
ON t1.handset_type = t2.handset_type
答案 1 :(得分:0)
可能会有所帮助,但我会测试它。
如果您的表格中有一个代表gloves_type_id的列,则查询将更改为
SELECT tbl_handsets.handset_type,
COUNT(*) AS Table1_Count,
( SELECT COUNT(*) FROM tbl_Accenture
WHERE tbl_Accenture.handset_type = tbl_handsets.handset_type
AND tbl_Accenture.handset_site_id = '15017' )
AS Table2_Count
FROM tbl_Handsets
Where tbl_handsets.handset_site_id = '15017'
GROUP BY tbl_handsets.handset_type