আমার একটি সমস্যা রয়েছে যা আমি প্রতিবার ঘনক্ষেত্র তৈরির সিদ্ধান্ত নিয়েছি এবং আমি এখনও এটি পরাস্ত করার কোনও উপায় খুঁজে পাইনি।
সমস্যাটি কীভাবে ব্যবহারকারীকে মাত্রাটিতে হার্ডকোডের প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে বিভিন্ন ধরণের জিনিস সংজ্ঞায়িত করতে দেওয়া যায়। আমি একটি উদাহরণে আমার সমস্যাটি ব্যাখ্যা করব।
আমার কাছে গ্রাহকরা নামে একটি টেবিল রয়েছে :
এই টেবিলের ডেটা:
আমি একটি পাইভট স্টাইলে ডেটা প্রদর্শন করতে চাই এবং নীচের মত সংজ্ঞায়িত রেঞ্জগুলিতে বেতন এবং বয়সকে গ্রুপ করলাম :
আমি এই স্ক্রিপ্টটি লিখেছি এবং ব্যাপ্তিগুলি নির্ধারণ করেছি:
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
আমার রেঞ্জগুলি হার্ড কোডড এবং সংজ্ঞায়িত। আমি যখন ডেটাটি এক্সেলের কাছে অনুলিপি করে পাইভট টেবিলটিতে দেখি, তখন নীচের মত এটি প্রদর্শিত হয়:
আমার সমস্যাটি হ'ল আমি গ্রাহকদের টেবিলটিকে একটি ফ্যাক্ট টেবিলে রূপান্তরিত করে 2 ডাইমেনশন সারণী স্যালারিডিম এবং এজডিম তৈরি করতে চাই ।
SalaryDim টেবিল 2 টি কলাম নেই (হয়েছে SalaryKey, SalaryRange ) এবং AgeDim টেবিল অনুরূপ ( ageKey, AgeRange )। আমার গ্রাহক ফ্যাক্ট টেবিলটিতে রয়েছে:
Customer
[CustId]
[CustName]
[AgeKey] --> foreign Key to AgeDim
[Salarykey] --> foreign Key to SalaryDim
আমাকে এখনও এই মাত্রাগুলির মধ্যে আমার ব্যাপ্তিগুলি নির্ধারণ করতে হবে। আমি যখনই আমার কিউবে একটি এক্সেল পাইভট সংযোগ করি তখনই আমি কেবল এই হার্ডকোডযুক্ত সংজ্ঞায়িত ব্যাপ্তিগুলি দেখতে পাই।
আমার প্রশ্ন হ'ল এজডিম এবং স্যালারিডিমের মতো পরিসীমা মাত্রা তৈরি না করে সরাসরি পিভট টেবিল থেকে সীমাবদ্ধতার গতিশীলভাবে সংজ্ঞা কিভাবে দেওয়া যায় । আমি মাত্র মাত্রায় সংজ্ঞায়িত রেঞ্জগুলিতে আটকাতে চাই না।
নির্ধারিত ব্যাপ্তিটি '0-25', '26 -30 ', '31 - 50'। আমি এটিকে '0-20', '21 -31 ', '32 -42' এবং আরও কিছুতে পরিবর্তন করতে চাই এবং ব্যবহারকারীরা প্রতিবার বিভিন্ন রেঞ্জের জন্য অনুরোধ করতে পারেন।
যতবার আমি এটি পরিবর্তন করি ততবারই আমাকে মাত্রা পরিবর্তন করতে হবে। আমি এই প্রক্রিয়াটি কীভাবে উন্নত করতে পারি?
কিউবে একটি সমাধান কার্যকর করা খুব দুর্দান্ত হবে, যাতে বিআই ক্লায়েন্ট টুল যা কিউবের সাথে সংযোগ করে তা রেঞ্জগুলি সংজ্ঞায়িত করতে পারে, তবে কেবল এক্সেল ব্যবহার করার কোনও ভাল উপায় থাকলে আমি কিছু মনে করব না।