استفاده از عملگر PIVOT برای تبدیل مقادیر تک ستونی به چند ستونی با کمک توابع تجمع

برخی موارد نیاز داریم که یک مقدار چند ستونی را به چند ستونی تبدیل کنیم. این مورد در ساخت گزارشات کاربرد زیادی دارد. به عنوان مثال فرض کنید یک کوئری آماده دارید که توسط آن لیستی از تمام شیفت‌های افراد به همراه نام قسمت‌های مربوطه در یک سازمان ارائه می‌شود. حال نیاز دارید بفهمید که هر کدام از قسمت‌های سازمان در کدام شیفت، چند نفر کارمند دارد. عملا شما به یک جدول متقاطع نیاز دارید که ستون‌های آن شامل نام قسمت‌های مختلف سازمان و سطرهای آن نام شیفت‌های مختلف می‌باشد.
ابتدا شما را با گرامر عبارت مورد نظر آشنا میکنم :

 

FROM table_source 

-- جدولیاکوئریمنبع

PIVOT(

aggregate_function( value_column ) 

-- تابعتجمعیموردنظربههمراهستونموردنظر

FOR pivot_column 

-- ستونیکهبرایساختننامستونهااستفادهمیشود

IN( <column_list>) 

-- مقادیریکهازستونبالابرایعملیاتانتخابمیشود

) table_alias

  -- ناممستعارجدولخروجی


حال این مثال را پیاده‌سازی می‌کنیم، لطفا به کوئری اولیه توجه بفرمایید :

 

/ 3 نظر / 171 بازدید
مدیر مجله کامژیوتر

سلام وبسايت بسيار خوب و پر محتوايي داريد . لطفا با وبسايت p30mag.com نيز که جديدا راه اندازي شده است نيز همکاري فرمائيد تا اين وبسايت نيز بتواند خدمات لازم را در راستاي پيشرفت کشور عزيزمان موثر باشد .پيشاپيش از عضويت شما در اين سايت متشکرم . www.p30magazine.com www.p30mag.com.

بهنام

سلام وبسايت بسيار خوب و پر محتوايي داريد . لطفا با وبسايت cdlocation.com نيز که جديدا راه اندازي شده است نيز همکاري فرمائيد تا اين وبسايت نيز بتواند خدمات لازم را در راستاي پيشرفت کشور عزيزمان موثر باشد .پيشاپيش از عضويت شما در اين سايت متشکرم . www.cdlocation.com

رضایی

با سلام سوال من این است که من یک اسکیوال 2005 با کلی دیتابیس و تنظیمات دارم. می خام یه ویندوز جدید با اسکیوال 2008 نصب کنم . حالا چطوری اونهمه دیتابیس رو بیارم تو اسکیوال 2008 منتقل کنم. ممنون می شم اگه جواب بدید