SSRS 보고서를 작성하는 중 구현 방법을 파악하는 데 어려움이 있습니다.계층 적 SQL 쿼리, SSRS 2008 및 요약 열
- 레벨 1A
- 레벨 2A
- 레벨 2B
- 레벨 2C
- 레벨 3A
우선, 여기에서 데이터의 기본 구조이다
,451,515,
- 레벨 1B
- 데이터베이스의 레벨 1C
각 레벨은 루트의 모든 부모 식별자 (레벨 1의 부모들은) 또한 각각 0이다 ID와 부모 ID를 가지고 수준에는 숫자 값이있는 열이 있습니다. 예를 들어, 내가이있을 수 있습니다
Level1a
ParentId = 0
Id = 1
DataValue = 42
Level2a
ParentId = 1
Id = 2
DataValue = 1
는 현재, 나는 데이터의 계층 구조와 수준을 얻을 수있는 공통 테이블 표현식을 구현 한 :
WITH cteTable(id, parentId, data, level) AS
(SELECT id,
parentId,
data,
1 AS level
FROM sampleTable
WHERE (parentId = 0)
UNION ALL
SELECT b.id,
b.parentId,
b.data,
c.level + 1 AS Expr1
FROM sampleTable AS b
INNER JOIN cteTable AS c ON b.parentId= p.id
)
SELECT id,
parentId,
data,
level
FROM cteTable
을 너무 일찍에서 샘플 데이터로, 쿼리의 결과가 될 것이다 : 여기에서
+----+----------+------+-------+
| id | parentId | data | level |
|----+----------+------+-------+
| 1 | 0 | 42 | 1 |
| 2 | 1 | 1 | 2 |
+----+----------+------+-------+
을, 나는 루트 레벨에 데이터를 요약하는 보고서를 구축해야합니다. 예를 들어, 보고서는 ID 1의 데이터 합계가 43임을 보여줍니다. 확실하지 않은 한 가지는 레벨이 얼마나 깊은 지입니다. 자식 수준이없는 경우와 트리가있는 경우가 있습니다. 몇 단계 깊이.
지금 고려해야 할 두 가지 옵션이 있습니다. 하나는 드릴 다운 보고서를 작성하여 사용 가능한 경우 합계가있는 각 레벨의 데이터를 표시하는 것입니다. 예를 들면 다음과 같습니다.
다른 하나는 루트에 데이터를 합산하고 상위 합계 만있는 보고서에 간단한 테이블을 표시하는 것입니다. 예를 들어 :
Level1a SUM_LEVEL1A_AND_ALL_CHILDREN_DATA
Level1b SUM_LEVEL1B_AND_ALL_CHILDREN_DATA
Level1c SUM_LEVEL1C_AND_ALL_CHILDREN_DATA
'내가 수행 한 인터넷 검색 작업을 드릴 다운 보고서 (유용 할 듯 링크 here가 도착하는 방법을 알아낼 수는 없지만, 난 그냥 나오지 않았어 그것을 작동시키지 마십시오).
데이터베이스 스키마를 변경하는 것은 옵션이 아닙니다.
누구든지 시작하기 위해 사용할 수있는 좋은 자료를 알고 있습니까? 아니면 진행 방법에 대한 아이디어가 있습니까? 나는 마침내 이것에 대한 해결책을 발견