【问题标题】:MS Access SQL join two tablesMS Access SQL 连接两个表
【发布时间】:2018-06-24 17:05:38
【问题描述】:

如何在 MS Access 中连接两条 SQL 语句中的数据,使它们显示为一张表:

第一个数据表

Select 
    W.[Local municipality] as Munic, 
    count(W.[Settlement Name]) 
from 
    tblSett as W
where 
    W.[Water] = 'Yes'
group by 
    W.[local municipality];

第二个数据表

Select 
    LM.Province, LM.[Local municipality], 
    count(LM.[Local Municipality]) as [Count], 
    sum(LM.Households) as TotalHouseholds 
from 
    tblSett AS LM
group by 
    LM.Province, LM.[Local Municipality]
order by 
    LM.Province;

我尝试了以下方法,但它显示了所有内容的总数,而不是按 [当地自治市] 细分:

Select 
    LM.Province, LM.[Local municipality], 
    count(LM.[Local Municipality]) as [Count], 
    sum(LM.Households) as TotalHouseholds, 
    (Select count(W.[Settlement Name] as [Count2]) 
     from tblSett as W
     where W.[Water] = 'Yes') 
from 
    tblSett AS LM
group by 
    LM.Province, LM.[Local Municipality]
order by 
    LM.Province;

【问题讨论】:

  • 编辑问题以显示示例数据和所需的输出。
  • 如果您按LM.[Local Municipality] 分组,这似乎并不意外。请阅读this 了解一些改进问题的技巧。
  • T-SQL 是 Sybase 和 SQL Server 使用的 Transact-SQL 方言 - 但在 MS Access 中不是

标签: sql ms-access join


【解决方案1】:

可能是这样的:

Select 
    LM.Province, 
    LM.[Local municipality] As Munic, 
    count(*) as [Count],
    sum(abs([Water] = "yes")) As WaterCount,
    sum(LM.Households) as TotalHouseholds 
From 
    tblSett AS LM
group by 
    LM.Province, 
    LM.[Local Municipality]

但是你的两个查询有不同的分组,所以你可能需要调整,但你可以看看如何创建 WaterCount。

【讨论】:

  • 谢谢古斯塔夫。你让它看起来很容易,不知道我是怎么错过的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多