2012-01-12 78 views
0

我目前正在创建一个数据库,其目的是记录一个人执行特定过程的次数。他们都标上这些程序,要么访问查询和报告创建

我已经创建了数据库,下面的查询将计算量的NB或C.时候,他们要么接受和NB或C.

TRANSFORM Count(ed.[Entry ID]) AS [CountOfEntry ID] 
SELECT ap.AdultProcedureName, ap.Target, Count(ed.[Entry ID]) AS [Total Of Entry ID] 
FROM tblAdultProcedures AS ap LEFT JOIN tblEntryData AS ed ON ap.AdultProcedureName = ed.[Adult Procedure] 
GROUP BY ap.AdultProcedureName, ap.Target 
PIVOT ed.Grade; 

我有然后创建一个报告,该报告将显示此查询的结果,并计算NB和C的得分百分比。

我遇到的问题是,如果没有任何成绩的数据(NB或C) 这是我的报告中的栏目标题,报告将不会显示错误。即使没有要显示的数据,是否有任何方法可以写入查询或报告以创建N B和C列。

这里是我的数据库的屏幕截图。 http://www.flickr.com/photos/mattcripps/6684779281/

在此先感谢

+0

我还以为你只在列返回这个数据(N,B兴趣, C)。如果是这样,并且没有任何数据;那么试图制作报告的目的是什么? – 2012-01-12 16:26:23

+0

@MattDonnan是如果没有任何数据,那么显然我不想要报告,但如果一个人完成了10个不同的过程并且只收到N级,那么报告将不会运行,因为没有B的值和C colunm – user1132612 2012-01-12 16:32:10

+0

查看上面的crosstab SQL,如果您只有N级的值,则不应该使报告失败,因为您将整个Grade列指定为整体,而不是针对每个类型单独指定,所以它应该仍然以也许只报1排。 – 2012-01-12 16:36:25

回答

1

至于我记得,只是增加应能解决这个问题:

<...> 
PIVOT ed.Grade IN ("N","B","C"); 
+0

非常感谢,这比我想象的要简单得多 – user1132612 2012-01-12 16:44:36