View Full Version : حرفه ای: نوشتن یک select بازگشتی
مرتضی حمزه ئی
یک شنبه 20 دی 1388, 10:16 صبح
با سلام خدمت اساتید یک فایل دارم که اطلاعات بیمه تکمیلی پرسنل داخل اون هست که ساختار اون بصورت زیر است
([PER_NO] ,[NAMEBABY] ,[FAMILYBABY],[RELCODE] ,[BIRTHDATE])
که شماره پرسنل دراون تکرار میشه ونام ونام خانوادگی افراد بیمه تکمیلی اون با تاریخ تولد داخل فایل baby قرار میگیره فیلد relcode هم مشخص میکنه که فرد همسر یا دختر وپسر یا پدر مادر پرسنل است حالا موقعی که میخوام گزارش بسازم گزارش طبق فرمت پیوست بصورت خطی است یعنی شماره پرسنل در یک ردیف وتمام افرادتحت بیمه اون پرسنل توی اون سطر قرار میگیرن تعداد فرزند حداکثر 6 است وپدرمادروهمسر نیز همراه با تاریخ تولد اونها باید جلوی پرسنل قراربگیره سوالم اینه چطوری select بنویسم که بتونم داخل گزارش بنشونم
Hamid.Kad
یک شنبه 20 دی 1388, 13:01 عصر
دوست عزیز، بهتره بجای لغت فایل از "جدول" استفاده کنی. من متوجه نشدم شما یک جدول دارید یا دو جدول. ولی در هر صورت،
با عملگر Pivot میتونید این کارو انجام بدید. در پستهای زیر توضیح داده شده.
http://barnamenevis.org/forum/showthread.php?t=189465&highlight=pivot
http://www.barnamenevis.org/forum/showthread.php?t=181221
مرتضی حمزه ئی
یک شنبه 20 دی 1388, 13:35 عصر
با سلام خدمت شما عزیز من اطلاعاتم داخل یک فایل baby استکه بصورت رکوردی ثبت شده است ولی در موقع گزارش چند رکورد پرسنل دریک خط باید نمایش داده شود وبا pivot هم نمیشه چون درگزارش به ازای هر relcode نام ونام خانوادگی بیمه شده با تاریخ تولدش راهمزمان میخوام زیرش داشته باشم وازتوابع AGGREGATE نمیخوام استفاده کنم توی مثالهای که ازجاع دادید به ازای یک ماه خاص میخواست ماکزیمم یک فیلد یا جمع را درزیر ستون داشته باشه ولی من اینجا سه تا مقدار رابرای پدر جدا مادر جدا وهمسر و حداکثر تا 6 فرزند داشته باشم خروجی را نگاه کنید به ازای هر فرد دوستوندارم که نام ونام خانوادگی درستون بالا وزیرش تاریخ تولد همین فرداست حداکثر تا 6 فرزند وپدرومادر
خروجی راببینید
تا حالا به چندین نفر این سوال رادادم جواب نگرفتم دستورش رالطفا بنویسید
شرمنده لطف میکنید
yektax
دوشنبه 21 دی 1388, 00:06 صبح
سلام
توضیحاتی که دادی خیلی نا مفهومه
ساختار جدول و فرمت گزارش رو واضح تر توضیح بده شاید بشه کمکی کرد
مرتضی حمزه ئی
دوشنبه 21 دی 1388, 09:03 صبح
با سلام خدمت دوستان عزیز
من با یک مثال ساختار را دوباره توضیح میدم :
per_no=740325,relcode=3,namebaby=maryam,familybaby =alavi,datebaby=80/01/12
per_no=740325,relcode=3,namebaby=mahsa,familybaby= alavi,datebaby=85/01/14
per_no=740325,relcode=1,namebaby=mahnaz,familybaby =ahmady,datebaby=55/10/22
per_no=740325,relcode=2,namebaby=abas,familybaby=a lavi,datebaby=40/11/18
فرض کنید که این اطلاعات برای یک پرسنل باشد relcode=3 یعنی فرزند وrelcode=1 همسر ,relcode=2 پدر استکه افراد بیمه تکمیلی شده پرسنل 740325 است بعضی از پرسنل شاید پدرمادرشان جزو بیمه تکمیلی نباشد وبعضی ها هم شاید فرزند نداشته باشند ولی حداکثر شش فرزند است حالا میخوام اطلاعات پرسنل را بصورت خطی زیر داشته باشم فایل ضمیمه خواهش میکنم کمک کنید باید بصورت خطی بتونم رکورد رابنشونم ازهمه اساتید خواهش میکنم کمک کنید تمرین خیلی خوبی واسه حرفه ایها
Hamid.Kad
دوشنبه 21 دی 1388, 12:24 عصر
آقا مرتضی اینجوری که شما توضیح دادید باید دو تا جدول داشته باشید !!!!
من نمیدونم چجوری با یه جدول طراحی کردید که دستور بنویسم. ولی با Pivot میشه نوشت. توابع Aggregate رو نگرانش نباش. اگه یه رکورد داشته باشی Max(f1) با f1 برابر میشه....
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.