在Access 2010交叉表查询中显示%s而不是仅计数

时间:2014-07-09 19:11:56

标签: sql ms-access-2010 crosstab

我有以下两个构建/提供给第三个查询的查询。我的目标是在左侧显示[MCOs]的交叉表查询,在顶部显示[DrpDown]的可能响应/值,其值显示为每个[MCO]的总百分比(因此行总数的百分比)。 / p>

我有什么作品,但我想知道我是否可以在一个查询中完成所有操作。

    SELECT tblMCOs.MCOs, tblMCOs.DrpDwn, Count(tblMCOs.ID) AS CountOfID
    FROM tblMCOs
    GROUP BY tblMCOs.MCOs, tblMCOs.DrpDwn;

    SELECT tblMCOs.MCOs, Count(tblMCOs.DrpDwn) AS CountOfDrpDwn
    FROM tblMCOs
    GROUP BY tblMCOs.MCOs;

    TRANSFORM Sum(Round([qryMCODrpDwnCt]![CountOfID]/[qryMCOCtDrpDwn]!
    [CountOfDrpDwn],4)*100) AS PCT
    SELECT qryMCODrpDwnCt.MCOs
    FROM qryMCODrpDwnCt INNER JOIN qryMCOCtDrpDwn ON qryMCODrpDwnCt.MCOs = 
    qryMCOCtDrpDwn.MCOs
    GROUP BY qryMCODrpDwnCt.MCOs
    PIVOT qryMCODrpDwnCt.DrpDwn;

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

我有什么作品,但我想知道我是否可以在一个查询中完成所有操作。

交叉表查询可能有点繁琐,但只需将SQL代码作为子查询插入就可以工作:

TRANSFORM Sum(Round([sqMCODrpDwnCt]![CountOfID]/[sqMCOCtDrpDwn]![CountOfDrpDwn],4)*100) AS PCT
SELECT sqMCODrpDwnCt.MCOs
FROM 
    (
        SELECT tblMCOs.MCOs, tblMCOs.DrpDwn, Count(tblMCOs.ID) AS CountOfID
        FROM tblMCOs
        GROUP BY tblMCOs.MCOs, tblMCOs.DrpDwn
    ) AS sqMCODrpDwnCt
    INNER JOIN 
    (
        SELECT tblMCOs.MCOs, Count(tblMCOs.DrpDwn) AS CountOfDrpDwn
        FROM tblMCOs
        GROUP BY tblMCOs.MCOs
    ) AS sqMCOCtDrpDwn 
        ON sqMCODrpDwnCt.MCOs = sqMCOCtDrpDwn.MCOs
GROUP BY sqMCODrpDwnCt.MCOs
PIVOT sqMCODrpDwnCt.DrpDwn