Суммируйте и покажите один раз продукт в SSRS

Я создал таблицу с данными о производстве в SSRS. Если я выберу одну неделю в отчете, она не суммирует отдельные продукты.

Я хотел бы подвести итоги для каждой даты и времени. Как я могу это сделать? Он должен показать мне результат только один раз для каждого продукта.


person mayo    schedule 27.01.2016    source источник
comment
Что такое столбцы? Вы хотите сумму 3 столбцов для каждого из M101 ... M113?   -  person pavel    schedule 27.01.2016
comment
Какой запрос вы используете для этого отчета?   -  person Haytem BrB    schedule 27.01.2016
comment
@pavel да, сумма 3 столбцов для каждого из M101 ... Я подсчитал сумму всех данных в конце этой таблицы, но я хотел бы, чтобы сумма для каждой машины зависела от даты. таблица покажет мне только один раз имя машины   -  person mayo    schedule 27.01.2016
comment
@mayo, ты добавил Datum в качестве группы строк?   -  person alejandro zuleta    schedule 27.01.2016
comment
я должен добавить это в свое выражение: OVER(PARTITION BY [intervaldate])   -  person mayo    schedule 27.01.2016
comment
@mayo, если вам нужно получить общее количество для Maschine1, Maschine2 и Maschine3 для каждого Datum, вы должны сгруппировать по этому полю. Выберите любую ячейку табликса и в нижней части панели на панели появится надпись Row Groups перетащите Datum на эту панель. Если вам нужна дополнительная помощь, включите в свой вопрос более подробную информацию о том, что вы ожидаете.   -  person alejandro zuleta    schedule 27.01.2016
comment
Я хотел бы иметь сумму, например, за декабрь месяца, а не за каждый день. Я хотел бы иметь сумму выбранной даты   -  person mayo    schedule 27.01.2016
comment
Добавьте пример табликса, который вы ожидаете, я не понимаю, как вы этого добьетесь на основе таблиц, которые вы указали в своем вопросе.   -  person alejandro zuleta    schedule 27.01.2016


Ответы (2)


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

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

введите здесь описание изображения

Обратите внимание, что есть два разных значения Datum, а значения Name повторяются в диапазоне дат.

Использование этого табликса со следующим расположением данных.

введите здесь описание изображения

Он создаст этот табликс:

введите здесь описание изображения

Дайте мне знать, если это поможет вам.

person alejandro zuleta    schedule 27.01.2016

Поскольку вы используете столбец intervaldate в своей группе, вы никогда не увидите столбец «Единицы», как хотите, потому что все даты появятся в вашем результате. Чтобы сделать результат, как вы хотите, вам нужно удалить intervaldate из выбора и группы, наверняка. Итак, ваш запрос должен быть таким...

SELECT * FROM (tsystem.Name as Name, 
     SUM(CASE WHEN Name = 'Maschine 1' THEN Units else 0 end) AS Maschine1,
     SUM(CASE WHEN Name = 'Maschine 2' THEN Units else 0 end) AS Maschine2,
     SUM(CASE WHEN Name = 'Maschine 3' THEN Units else 0 end) AS Maschine3
FROM Count inner join tsystem ON Count.systemid = tsystem.id
WHERE IntervalDate BETWEEN @StartDateTime AND @EndDateTime
AND tsystem.Name IN ('M101'
     , 'M102'
     , 'M103'
     , 'M104'
     , 'M105'
     , 'M107'
     , 'M109'
     , 'M110'
     , 'M111'
     , 'M113'
     , 'M114'
     , 'M115')
GROUP BY tsystem.Name) AS s

Это можно сделать с помощью сводной точки, потому что «имена машин» представляют собой столбец. Это позволит избежать подзапроса и оператора case. Подробнее о сводке можно узнать здесь

person warwreken    schedule 27.01.2016
comment
но если я удалю intervaldate, появится эта ошибка: ... IntervalDate недействителен в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении Group by - person mayo; 27.01.2016
comment
Выполняя запрос, который я разместил, вы получаете ошибку? Убедитесь, что вы используете точно так же, как я разместил @mayo - person warwreken; 27.01.2016