Tôi có một vấn đề mà tôi phải đối mặt mỗi khi tôi quyết định xây dựng một khối lập phương và tôi chưa tìm được cách khắc phục.
Vấn đề là làm thế nào để cho phép người dùng tự động xác định một loạt các thứ mà không cần phải mã hóa chúng theo chiều. Tôi sẽ giải thích vấn đề của tôi trong một ví dụ.
Tôi có một bảng gọi là Khách hàng :
đây là dữ liệu trong bảng:
Tôi muốn hiển thị dữ liệu theo kiểu xoay vòng và nhóm lại Mức lương và Tuổi theo các phạm vi được xác định như dưới đây:
Tôi đã viết kịch bản này và xác định các phạm vi:
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
Phạm vi của tôi được mã hóa cứng và xác định. Khi tôi sao chép dữ liệu vào Excel và xem nó trong bảng xoay vòng, nó sẽ xuất hiện như bên dưới:
Vấn đề của tôi là tôi muốn tạo một khối bằng cách chuyển đổi bảng Khách hàng thành bảng thực tế và tạo bảng 2 chiều SalaryDim & AgeDim .
Bảng SalaryDim có 2 cột ( SalaryKey, SalaryRange ) và bảng AgeDim tương tự ( ageKey, AgeRange ). Bảng thực tế khách hàng của tôi có:
Customer
[CustId]
[CustName]
[AgeKey] --> foreign Key to AgeDim
[Salarykey] --> foreign Key to SalaryDim
Tôi vẫn phải xác định phạm vi của mình trong các kích thước này. Mỗi lần tôi kết nối một trục Excel với khối của mình, tôi chỉ có thể thấy các phạm vi được xác định mã hóa cứng này.
Câu hỏi của tôi là làm thế nào để xác định trực tiếp các phạm vi từ bảng trục, mà không tạo các kích thước phạm vi như AgeDim và SalaryDim . Tôi không muốn chỉ bị mắc kẹt trong phạm vi được xác định trong thứ nguyên.
Phạm vi được xác định là '0-25', '26 -30 ', '31 - 50'. Tôi có thể muốn thay đổi nó thành '0-20', '21 -31 ', '32 -42', v.v. và người dùng yêu cầu các phạm vi khác nhau mỗi lần.
Mỗi lần thay đổi, tôi phải thay đổi kích thước. Làm thế nào tôi có thể cải thiện quá trình này?
Thật tuyệt vời khi có một giải pháp được triển khai trong khối, do đó, bất kỳ công cụ máy khách BI nào kết nối với khối đều có thể xác định phạm vi, nhưng tôi sẽ không phiền nếu chỉ có cách sử dụng Excel tốt.