Her küp inşa etmeye karar verdiğimde karşılaştığım bir sorun var ve henüz üstesinden gelmek için bir yol bulamadım.
Sorun, kullanıcının boyutta sabit kodlamaya gerek kalmadan bir dizi şeyi otomatik olarak tanımlamasına nasıl izin verileceğidir. Sorunumu bir örnekte açıklayacağım.
Müşteriler adında bir masam var :
tablodaki veriler:
Ben pivot tarzı ve grupta verileri görüntülemek isteyen Maaş ve Age aşağıda gibi tanımlanmış aralıklarda:
Bu komut dosyasını yazdım ve aralıkları tanımladım:
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
Aralıklarım sabit kodlanmış ve tanımlanmıştır. Verileri Excel'e kopyalayıp bir pivot tabloda görüntülediğimde, aşağıdaki gibi görünür:
Benim sorunum, Müşteriler tablosunu bir olgu tablosuna dönüştürerek bir küp oluşturmak ve SalaryDim ve AgeDim 2 boyut tabloları oluşturmak istiyorum .
SalaryDim Tablo 2 sütun (sahiptir SalaryKey, SalaryRange ) ve AgeDim tablosu (benzerdir ageKey, Yaş Aralığı ). Benim Müşteri özellik tablosu vardır:
Customer
[CustId]
[CustName]
[AgeKey] --> foreign Key to AgeDim
[Salarykey] --> foreign Key to SalaryDim
Aralıklarımı hala bu boyutlar içinde tanımlamam gerekiyor. Küpüme bir Excel pivotu her bağladığımda, yalnızca bu kodlanmış tanımlı aralıkları görebiliyorum.
Benim sorum AgeDim ve SalaryDim gibi aralık boyutları oluşturmadan aralıkların doğrudan pivot tablodan dinamik olarak nasıl tanımlanacağıdır . Yalnızca boyutta tanımlanan aralıklara bağlı kalmak istemiyorum.
Tanımlanan aralık '0-25', '26 -30 ', '31-50' dir. Bunu '0-20', '21 -31 ', '32 -42' ve benzeri olarak değiştirmek isteyebilirim ve kullanıcılar her seferinde farklı aralıklar ister.
Her değiştirdiğimde boyutu değiştirmem gerekiyor. Bu süreci nasıl geliştirebilirim?
Küpte bir çözüm bulunması harika olurdu, böylece küpe bağlanan BI istemci aracı ne olursa olsun aralıkları tanımlayabilir, ancak yalnızca Excel'i kullanmanın iyi bir yolu olup olmadığını umursamıyorum.