[英]Count expression in SSRS 2008
我遇到的情況是我有一個列名`NotifcationLog.Status。
狀態可以是3種類型:已接受,待處理和過期。 我需要統計所有通知狀態。
我用以下表達式創建了一個計算字段
=COUNT(IIF(Fields!NotificationStatus.Value="Accepted",1,Nothing))
當我嘗試將此計算字段添加到表中並對其進行預覽時,出現錯誤,指出“聚合,行號,運行值,先前和查找函數無法在計算字段表達式中使用”
我現在應該怎么辦 ??
您嘗試添加
=IIF(Fields!NotificationStatus.Value="Accepted",1,0)
作為您的計算字段。 返回1或0,具體取決於狀態是否被接受。
然后在要使用它的地方,只需對計算字段SUM
即可計數。
=Sum(Fields!NewCalculatedField.Value)
在將數據分組的表/矩陣等中使用它。
該錯誤似乎很簡單,您不能執行此操作的原因是,沒有任何分組就沒有意義。 想象以下數據集:
+-------+------------+
| ID | Status |
|-------+------------+
| 1 | Accepted |
| 2 | Pending |
| 3 | Accepted |
| 4 | Overdue |
+-------+------------+
如果要在表達式中添加第三列,則該列將等於
SELECT ID, Status, COUNT(CASE WHEN Status = 'Accepted' THEN 1 END)
FROM T
如果沒有分組依據,則該語法無效。 您可以在計數表達式中添加報告字段,但不能在數據集中添加計算字段。 您嘗試制作的數據集如下:
+-------+------------+----------+
| ID | Status | Accepted |
|-------+------------+----------+
| 1 | Accepted | 2 |
| 2 | Pending | 2 |
| 3 | Accepted | 2 |
| 4 | Overdue | 2 |
+-------+------------+----------+
對於所有行都重復該值實際上沒有任何意義,但是您可以在SQL中使用窗口函數來做到這一點:
SELECT ID,
Status,
Accepted = COUNT(CASE WHEN Status = 'Accepted' THEN 1 END) OVER()
FROM T;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.