2016-04-26 3 views
2

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

Теперь я должен сделать 5 лучших проблем. И эти проблемы перечислены в базе данных в том же каталоге »:

Как это сделать?

Я использую SQL Server Report Builder.

Я не могу добавить картинку, я постараюсь сделать это так:

Date      CounterName     calculationUnitsInitial  
    2016-04-26 00:00:00.000 Prod      6221 
    2016-04-26 00:00:00.000 Bad       0 
    2016-04-26 00:00:00.000 ba   0 
    2016-04-26 00:00:00.000 ba  0 
    2016-04-26 00:00:00.000 Ausg  6  
    2016-04-26 00:00:00.000 Au   0 
    2016-04-26 00:00:00.000 Bad       125  
    2016-04-26 00:00:00.000 Aus       8 
    2016-04-26 00:00:00.000 Band position    0 
    2016-04-26 00:00:00.000 Fe    0 
    2016-04-26 00:00:00.000 Fe    0 
    2016-04-26 00:00:00.000 Hu      124  
    2016-04-26 00:00:00.000 S      0 
    2016-04-26 00:00:00.000 Dr    0 
    2016-04-26 00:00:00.000 H   4 
+0

Не могли бы вы предоставить нам структуры таблиц, с которыми вы работаете, тогда мы сможем помочь намного лучше. –

+0

да, конечно, я сделаю это. –

+1

Я отредактировал свой вопрос сейчас –

ответ

1

Поэтому нам нужен список проблем, в порядке убывания частоты для наихудшего рабочей машины. Я бы установил ваш действительно большой запрос в качестве набора данных и использовал его для заполнения значения по умолчанию скрытого параметра, называемого Machine. Нам также потребуется два параметра DateFrom и DateTo с их значениями по умолчанию, установленных для диапазона дат вы заинтересованы в

Тогда ваш выбор проблемы прост:.

SELECT CounterName, COUNT(*) AS Problems 
FROM Problems 
WHERE Machine = @Machine 
    AND ProblemDate >= @DateFrom AND ProblemDate <= @DateTo 
GROUP BY CounterName 
ORDER BY COUNT(*) DESC 

Теперь у нас есть хороший список числа каждого типа проблемы для этой машины в порядке убывания возникновения проблем. Назовем этот набор данных Problems

Добавить таблицу в отчет с двумя столбцами. Первый столбец будет иметь выражение:

=Fields!Problems.Value/SUM(Fields!Problems.Value, "Problems") 

Это делит ряд проблем для этого CounterName по всему ряду проблем в датасетах. Установите для свойства Format этой ячейки значение P1, чтобы отобразить его в процентах с одним десятичным знаком.

Вторая колонка - это поле CounterName.

+0

Благодарим вас за помощь. Я попробую –

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