تفکیک مقادیر یک رکورد (مثلا مقادیر فروش) در دو ستون
با سلام
برای من
سوالی پیش اومده که آیا میتوان در sql مثلا مقادیر فروش اولیه یک مغازه را در یک ستون و سایر فروش های همان مغازه را در ستون دیگر آورد؟
مثلا ما دو جدول با شرایط زیر داریم :
جدول ck دارای دو فیلد بنام های id (فیلد id کلید اصلی) و name است
و جدول T دارای سه فیلد بنام های sn (کد فروش ها (یعنی فروش های اولیه با کد 1 و سایر فروش ها با کد 2 مشخص شده اند)) , id , sell است
حال ما میخواهیم مقدار فروش های مغازه هارا با این شرط که فروش های اولیه (که کدآن 1 است) در یک ستون و سایر فروش ها (که کد آن 2 میباشد) در ستون دیگر باشد
یعنی به عبارت دیگر میتوان گفت که گزارش خروجی ما شامل چهار ستون باشد که در آن کد مغازه (مثلا کد 110) , نام مغازه (مثلا مغازه a) , حاصل جمع مقادیر فروش اولیه این مغازه , حاصل جمع سایر فروش های این مغازه باشد.
باتشکر
1 پاسخ
سلام دوست عزیز، تو توضیحات شما ارتباطی بین جدول فروشنده و فروش ها مشخص نشده، با فرض اینکه جدول ck شما لیست فروشنده ها و جدول T لیست فروش ها باشه و بوسیله یک کلید خارجی این دو جدول با هم ارتباط داشته باشن (مثلاً ckId در جدول T)، کوئری زیر خروجی مورد نظر شما رو میده:
select T.ckId, ck.[name], SUM(case when T.sn = 1 then T.sell else 0 end) FirstSales, SUM(case when T.sn = 2 then T.sell else 0 end) OtherSales from T inner join ck on ck.id = T.ckId group by T.ckId,ck.name