连接中的连接和比例

时间:2014-07-17 13:29:03

标签: sql ms-access

一点背景: 我有两个从excel导入的表。一个是300k +行,所以当我在excel中对它进行更新时,它运行速度太慢,并且通常不会处理我的comp。无论如何,我使用了一个“外部”左连接来将两者结合在一起。 现在,当我运行查询时,我得到的结果很好,但我需要在这些结果中添加一些字段。

我希望模仿我在excel中所做的事情,所以我可以用同样的方式创建我的摘要枢轴。

首先,我需要一个只在连接后连接其他两个字段的字段。

然后我需要添加一个相当于的字段: 从excel访问1/Countif($T$2:$T$3330,T2)。但是,该范围不需要修复。我会得到它,以便所有文本条目都在该字段的顶部,所以理论上,我需要相当于Sheets("").Range("T2").End(xldown)。当我进行数据透视表时,这个比例用于消除重复计算。

我可能比这更复杂但是我也是Access的新手,所以请尝试在解释中解释一些事情。

由于

编辑:我目前有:

    Select [Table1].*, [Table2].PlaySk, [Table2].Service
    From [Table1] Left Join [Table2] On [Table1].Play + [Table1].Skill 
    = [Table2].PlaySk

在一般情况下,我想解决的问题是获得ColAB和ColProportion。

ColA      ColB       ColAB        ColProportion
a          1          a1              .5
b          1          b1              1
a          1          a1              .5
b          2          b2              .3333333
b          2          b2              .3333333
b          2          b2              .3333333

1 个答案:

答案 0 :(得分:0)

听起来像你需要按顺序进行一些查询,以便做你需要的一切。

第一部分(连接)相对简单 - 只需要将两个字段名称连接在一起,比如说[Play]和[Skill],然后在设计视图中创建一个像“PlaySk”这样的新字段: [Play]& [Skill]“。

如果你想在它们之间添加一个角色(我经常在连接时做,只是为了保持正确),例如分号,你可以做“PlaySk:[Play]&';' & [技能]“。

至于第二部分,我想你会想要在另一部分之上构建一个“Group By”查询。在您的原始查询中,在设计视图中创建另一个字段,如下所示:“T2_Counter:Iif([您正在检查的字段,即T列是什么] =''您要检查的任何值,即T2是什么',1 ,0)”。这将导致检查为真时列为1,否则为零。

然后将此查询添加到新查询中,单击“设计”选项卡顶部的“总计”,然后将要分组的字段向下移动。然后在设计视图中创建一个字段,如下所示:“MagicField:1 / Sum(T2_Counter)”。

希望这有助于您至少开始。