1

У меня есть набор результатов SQL-сервера, который мне нужно отображать с использованием SSRS rdl. Результирующий набор идентификатор, как:Удалить динамически сформированные пустые столбцы из rdl

SpeakerId  Product Topic 
16    a  A 
16    a  B 
16    b  C 
16    a  D 
17    b  B 
17    c  C 
17    c  E 
18    a  B 
18    c  A 
19    c  C 

Мне нужно, чтобы отобразить эту информацию в различных вкладок в Excel на основе продуктов. Каждый динамик будет иметь только одну строку, и темы будут отображаться в разных связках на основе алфавитного порядка. Когда я попытался реализовать эти динамические страницы и столбцы в rdl, у меня возникает следующая проблема: Я получаю пустые столбцы для тем, если у продукта и динамика на этой вкладке нет темы, в которой другой продукт и динамик (в других вкладках).

Просьба предложить любой способ решить эту проблему. Я попытался использовать Ранк, но концепция в этом случае не помогает, поскольку у нас есть несколько страниц в excel.

Thank you.

ответ

0

В такой ситуации вам необходимо убедиться, что все требуемые темы возвращены для всех динамиков, чтобы SSRS знал, что нужно отображать темы.

Один из способов сделать это с PIVOT запроса, что-то вроде:

select SpeakerId 
    , [A],[B],[C],[D],[E] 
from ResultSet 
pivot 
(
    max(Product) 
    for Topic in ([A],[B],[C],[D],[E]) 
) p 

SQL Fiddle with demo.

Здесь вы можете видеть, что каждый динамик имеет столбец для каждой темы в результате.

Это означает, что в отчете вы можете использовать таблицу вместо матрицы для отображения данных.

Неизвестное количество тем?

Возможно, вы все еще сталкиваетесь с проблемами, если не знаете требуемые темы перед тем, как писать запрос отчета - в этом случае я бы предложил, чтобы вы включили в таблицу темы OUTER JOIN.

Это зависит от ваших данных, очевидно. Но это полезно, поскольку это означает, что каждый спикер будет иметь строку для каждой темы, что вам и нужно ... Здесь вы должны использовать Матрицу для отображения результатов в отчете.

Какой бы подход вы ни использовали, цель состоит в том, чтобы получить DataSet для SSRS, который включает в себя все возможные комбинации динамиков и тембров, даже если фактическое значение для темы NULL, поэтому в отчете всегда отображаются одинаковые столбцы для каждого динамика ,

+0

Спасибо Яну. Но на самом деле в моем случае темы относятся к продуктам. В некоторых продуктах будут несколько тем, а в другом продукте будет какая-то другая тема. Таким образом, у нас не может быть всех тем во всех вкладках продукта. Пожалуйста, предложите, если у вас есть что-то для этого случая. – sjs

Смежные вопросы