2012-01-12 109 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