Ho un problema che devo affrontare ogni volta che decido di costruire un cubo e non ho ancora trovato il modo di superarlo.
Il problema è come consentire all'utente di definire automaticamente una serie di cose senza la necessità di codificarle nella dimensione. Spiegherò il mio problema in un esempio.
Ho un tavolo chiamato Clienti :
questi sono i dati nella tabella:
Voglio visualizzare i dati in uno stile pivot e raggruppare lo stipendio e l' età in intervalli definiti come di seguito:
Ho scritto questo script e definito le gamme:
SELECT [CustId]
,[CustName]
,[Age]
,[Salary]
,[SalaryRange] = case
when cast(salary as float) <= 500 then
'0 - 500'
when cast(salary as float) between 501 and 1000 then
'501 - 1000'
when cast(salary as float) between 1001 and 2000 then
'1001 - 2000'
when cast(salary as float) > 2000 then
'2001+'
end,
[AgeRange] = case
when cast(age as float) < 15 then
'below 15'
when cast(age as float) between 15 and 19 then
'15 - 19'
when cast(age as float) between 20 and 29 then
'20 - 29'
when cast(age as float) between 30 and 39 then
'30 - 39'
when cast(age as float) >= 40 then
'40+'
end
FROM [Customers]
GO
Le mie gamme sono codificate e definite. Quando copio i dati in Excel e li visualizzo in una tabella pivot, appare come di seguito:
Il mio problema è che voglio creare un cubo convertendo la tabella Clienti in una tabella dei fatti e creare 2 tabelle dimensionali SalaryDim & AgeDim .
La tabella SalaryDim ha 2 colonne ( SalaryKey, SalaryRange ) e la tabella AgeDim è simile ( ageKey, AgeRange ). La tabella dei fatti del mio cliente contiene:
Customer
[CustId]
[CustName]
[AgeKey] --> foreign Key to AgeDim
[Salarykey] --> foreign Key to SalaryDim
Devo ancora definire le mie gamme all'interno di queste dimensioni. Ogni volta che collego un pivot di Excel al mio cubo, riesco a vedere solo questi intervalli definiti codificati.
La mia domanda è come definire gli intervalli dinamicamente direttamente dalla tabella pivot, senza creare le dimensioni dell'intervallo come AgeDim e SalaryDim . Non voglio essere bloccato solo negli intervalli definiti nella dimensione.
L'intervallo definito è '0-25', '26 -30 ', '31 - 50'. Potrei volerlo cambiare in '0-20', '21 -31 ', '32 -42' e così via, e gli utenti richiedono ogni volta intervalli diversi.
Ogni volta che lo cambio, devo cambiare la dimensione. Come posso migliorare questo processo?
Sarebbe bello avere una soluzione implementata nel cubo, in modo che qualunque strumento client BI che si connette al cubo possa definire gli intervalli, ma non mi dispiacerebbe se c'è un buon modo usando solo Excel.