2016-04-18 6 views
0

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

Мы только что внедрили ряд фактов/измерений, чтобы приносить медленно меняющиеся данные на наш склад. Сценарий заключается в том, что мы отслеживаем билеты, и мы внедрили SCD, чтобы мы могли запускать отчеты, которые показывают открытые билеты исторически (этот день на прошлой неделе или 1-го числа месяца), а не текущее состояние БД. Я хотел бы показать, сколько билетов было открыто на графике трендов в течение нескольких дней.

Example Data 
ID; Open Count; Effective From; Effective To; 
1; 1; 28/02/2016; 05/03/2016 
2; 1; 02/03/2016; 04/03/2016 
3; 1; 03/03/2016; 04/03/2016 

Charts

Я хотел бы, чтобы произвести диаграмму справа, но я в конечном итоге с диаграммой слева. Я взломал короткий фрагмент кода, который использовал.

> SELECT DT.Date, SUM(Open_Count) FROM ExampleDate ED LEFT JOIN 
> DateTime Dimension DT ON ED.Effective_From = DT.Date WHERE 
> ED.Effective_From >= '28/02/2016' AND ED.Effective_From < 
> '06/03/2016' ORDER BY DT.Date 

ответ

0

Im будем считать ваш макет таблицы фактов означает, что ID: 1 считается открытым между 28/2 и 5/3

Проблема заключается в ваш присоединиться - результат вы после требует записи билетов на дублироваться на каждый день, когда они открыты ... try:

select 
    DT.Date, 
    SUM(Open_Count) 
FROM 
    DateTime_Dimension DT 
    inner JOIN ExampleDate ED ON DT.Date >= ED.Effective_From and DT.Date <= ED.Effective_To 
WHERE 
    ED.Effective_From >= '28/02/2016' AND ED.Effective_From < '06/03/2016' 
GROUP BY 
    DT.Date 
ORDER BY 
    DT.Date 
Смежные вопросы