2015-12-15 1 views
3

Я работаю над запросом, и я сделал DateDiff в своем операторе Select, чтобы создать три столбца, которые создают небольшие различия между двумя столбцами в моем запросе. Теперь мне нужно сделать данные из этих DateDiff результатов в ведра, но я зациклился на том, как это сделать.SSRS Calculated Column in Buckets

Эти расчеты из моего Select заявления:

,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, PF_MST.ISSU_DTTM) AS 'Order_Issue' 
,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, UNIT_HIST.OCCR_DTTM AS 'Order_XM' 
,DATEDIFF (minute, UNIT_HIST.OCCR_DTTM, PF_MST.ISSU_DTTM) AS 'XM_IS' 

Я собирался попробовать добавить это в качестве подзапроса в моем FROM заявлении:

LEFT OUTER JOIN 
    SELECT 
     count(CASE WHEN 'Order_XM'>= 0 AND 'Order_XM' < 10 THEN 1 END) AS '0 - 10', 
     count(CASE WHEN 'Order_XM'>= 11 AND 'Order_XM' < 20 THEN 1 END) AS '11 - 20', 
     count(CASE WHEN 'Order_XM'>= 21 AND 'Order_XM' < 30 THEN 1 END) AS '21 - 30', 
     count(CASE WHEN 'Order_XM'>= 31 AND 'Order_XM' < 40 THEN 1 END) AS '31 - 40', 
FROM ____)) 

Но я не знаю, что таблица Мне нужно включить в свой оператор FROM. И я не уверен, что это действительно правильный способ сделать это.

Любые мысли о том, как вы получите вычисляемый столбец в запросе в ковши в одном и том же запросе, чтобы я мог создать гистограмму в построителе отчетов?

Я много сделал для этого поиска и ничего не нашел, где эти значения были рассчитаны. TIA

ответ

0

Вы можете взять свой первоначальный запрос с вычисленными столбцами DateDiff и использовать его в качестве подзапроса - это позволит вам иметь первичный запрос, который выполняет bucketing.

Вы не разместили большую часть своего SQL, что затрудняет отображение примера, который совершенно уместен. Поэтому вместо этого я буду использовать базу данных Northwind из MS, чтобы показать пример, который должен быть достаточно простым, чтобы следовать и исправить свой собственный запрос.

Борей имеет Orders таблицу с двумя столбцами: DATETIMERequiredDate и ShippedDate. Мой подзапрос вычисляет DateDiffdays, а не minutes) между этими двумя столбцами и вызывает его Diff. Затем первичный запрос вычисляет COUNT для каждого из трех ковшей, охватывающих диапазоны значений.

SELECT 
    COUNT(CASE WHEN Diff >= -50 AND Diff < -25 THEN 1 END) AS '-50 through -25', 
    COUNT(CASE WHEN Diff >= -25 AND Diff < 0 THEN 1 END) AS '-25 thorugh 0', 
    COUNT(CASE WHEN Diff >= 1 AND Diff < 25 THEN 1 END) AS '0 thorugh 25' 
FROM 
    (
     SELECT DATEDIFF(day, RequiredDate, ShippedDate) AS 'Diff' 
     FROM [Northwind].[dbo].[Orders] 
    ) a 

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