خدمت
سناریویی را با این مورد در نظر بگیرید:
بازرسان یک مجموعه باید طبق برنامه ی زمانبندی که برایشان مشخص شده است در یکسری از ادارات می بایست حداقل 5 بار حضور داشته باشند.(در هر ماه)
به طور مثال آقای X در تاریخ 941020 در اداره X حضور داشته باشد (تعداد این ادارات 5 تا است.)
آقای X در تاریخ 941025 در داره Y باید حضور داشته باشد. و همینطور برای کلیه کاربران.
حال در جدول دیگری وضعیت حضور و غیابشان به همراه نوع غیبت (موجه یا غیر موجه) ثبت خواهد شد.
به طور مثال آقای رمضانی در تاریخ 941020 در اداره X حضور نداشته و غیبتش هم غیر موجه بوده.
دوباره همین آقا در تاریخ 941025 در اداره X حضور داشته.
با این حال همچین گزارشی از جدول فوق انتظار می رود:
نام بازرس اداره شماره 1 اداره شماره 2 اداره شماره3 اداره شماره 4 اداره شماره 5 تعداد غیبت.
نکته اگر در یک اداره ای بیش از یک غیبت وجود داشت می بایست در داخل همان ستون تاریخ مربوط به غیبت را با یک ویرگول از هم جدا کند. و در ستون آخر نیز تعداد کل غیبت ها شخص را در آن بازه زمانی که کاربر گزارش می گیرد برایش نمایش دهد.
گزارش فوق را بنده با 6 تابع مجزا نوشته ام !5 تابع برای هر کدام از ادارات و یک تابع برای غیبت! و با روش SQL Concatenate
ولی این راه اصولی نیست،طوری که فردا روزی دو اداره دیگر اضافه شود می بایست دوباره 2 تابع مجزای دیگر برای آن ادارات نوشته و در آخر آن را در SP فراخوانی کنم.
ممنون میشم اگر راهنمایی بفرمایید که بنده چظور این موضوع رو به شکل بهینه و داینامیک ایجاد کنم.
با سپاس