循环增长数据

时间:2015-08-24 12:18:23

标签: sql ms-access crosstab

我试图产生一些年度增长数据,这是成功的;但是我得到了循环数据。

Expected positional parameter count: 1, actual parameters: []

查询应输出到CrossTab查询中,显示4个省及其在2014-2013,2013-2012和2012-2011之间每个时期的增长百分比。但是我得到一个运行4320行的CrossTab查询(应该是4)。我也不确定我是否以最佳方式处理生成增长数据(计划将它们插入新表中)。

表:会员资格 (PK)CU_Name(文本),(PK)期间(日期/时间),成员资格_#(数字)

CU_Info (PK)CU_Name(文本),CU _#(文本),省(文本)

Membership.CU_Name一对多Membership.Cu_Name

查询:ProvTotalsPeriod

SELECT 
  ProvTotalsPeriod.Province, 
  FormatPercent(([12/31/2014]-[12/31/2013])/([12/31/2013])) AS [Growth 14-13], 
  FormatPercent(([12/31/2013]-[12/31/2012])/([12/31/2012])) AS [Growth 13-12], 
  FormatPercent(([12/31/2012]-[12/31/2011])/([12/31/2011])) AS [Growth 12-11]
FROM 
  ProvTotalsPeriod, Membership;

1 个答案:

答案 0 :(得分:0)

您必须显示两个表之间的关系。使用,您正在使用CROSS JOIN组合每个表格的每一行(cartesian product)。

ProvTotalsPeriod中的Membership *行中的行= 4320。

详细了解JOINs

编辑:

看到关系和查询后,您可以尝试删除Membership表:

SELECT 
  ProvTotalsPeriod.Province, 
  FormatPercent(([12/31/2014]-[12/31/2013])/([12/31/2013])) AS [Growth 14-13], 
  FormatPercent(([12/31/2013]-[12/31/2012])/([12/31/2012])) AS [Growth 13-12], 
  FormatPercent(([12/31/2012]-[12/31/2011])/([12/31/2011])) AS [Growth 12-11]
FROM 
  ProvTotalsPeriod;