我正在使用交叉表查询来计算一对数字的百分比,并使用Make查询将结果放入不同的表中。
源数据是这样的:
ITEMS |PAIRS |VAL
Element1 |dividend |43
Element1 |divisor |33
Element2 |dividend |65
Element3 |dividend |73
Element4 |dividend |32
Element4 |divisor |23
Element3 |divisor |49
请注意:在实际情况中,完全有可能缺少两个元素中的一个(在这种情况下,Element2的除数部分)。
以下是我如何使用Crosstab查询(名为QCross)来克服“溢出”错误。
TRANSFORM Sum(TRawData.Val) AS SumOfVAL
SELECT TRawData.ITEMS, IIf(IsError(Sum(IIf(TRawData.[PAIRS]='dividend', TRawData.[VAL],0))/Sum(IIf(TRawData.[PAIRS]='divisor',TRawData.[VAL],0))),0,Sum(IIf(TRawData.[PAIRS]='dividend',TRawData.[VAL],0))/Sum(IIf(TRawData.[PAIRS]='divisor',TRawData.[VAL],0))) AS MYRES
FROM TRawData
GROUP BY TRawData.ITEMS
PIVOT TRawData.PAIRS;
这是Make查询
SELECT QCross.ITEMS, QCross.MYRES INTO TOutcome
FROM QCross;
交叉表查询运行良好,但是当执行Make查询时,我面临“除以零”错误(!运行);值得注意的是,错误不会出现在“查看”模式中。
我在哪里做错了?
交叉表查询执行:
进行查询(查看模式):