ورود

View Full Version : SUM IF !



پوریا_م
دوشنبه 21 تیر 1389, 15:34 عصر
با سلام خدمت دوستان
من یه جدول دارم که اطلاعات هر ماه دریافتی پرسنل توی اون درج میشه.
در sp که محاسبات مربوط به دریافتی پرسنل رو انجام میده من سال و ماه پرداخت رو بعنوان ورودی از کاربر میگیرم و محاسبات رو برای کلیه پرسنلی که برای اونها در این ماه وسال اطلاعات اولیه وارد شده وجود داره انجام میدم.
حالا من یک فیلد دارم که باید مجموع مبالغ مشمول مالیات کلیه ماههای قبلی هر پرسنل رو محاسبه کنم و در اون ذخیره کنم.چون من در هر محاسبه مجموعه ای از پرسنل رو دارم و فقط ماه و سال رو بعنوان ورودی sp دارم به مشکل برخوردم.یعنی نمیتونم همچین کدی رو اجرا کنم:



select sum ( Gift2 ) as sumgift from giftTable where personelcode = 100524

حالت محاسبه من چیزی شبیه به Sumif اکسل هستش.یعنی در هر رکورد برای هر پرسنل مجموع یک فیلد رو در فیلد مورد نظر آپدیت کنه.
امیدوارم تونسته باشم منظورم رو برسونم. من از SQLServer 2000 استفاده میکنم.
لطفا راهنمایی بفرمایید.

mohsenyazarloo
دوشنبه 21 تیر 1389, 19:26 عصر
سلام دوست عزيز
سوالت يه مقدار برام مفهوم نيست . مثلا ماه تير و سال 1389 رو بعلاوه كد پرسنلي هر فرد وارد مي كني بعدش مي خواي كل ماليات از ابتداي ماههاي ثبت شده رو حساب كنه و بهت برگردونه.
يا اينكه منظورت اينه كليه ماههاي قبلو با ماليات اين ماه بروز رساني كنه ؟
اگه حالت اوله اگه از function استفاده كني بهتره
حالت دوم اگه منظورت رو درست فهميده باشم يك مقدار غير معقوله با اين حال اگه بتوني جدولتو برام Mail كني خوشحال مي شم كمكت كنم

پوریا_م
دوشنبه 21 تیر 1389, 21:12 عصر
سلام
ببینید روال کار به این شکله :
قبلا برای تعدادی پرسنل مبالغی ثبت شده.
در مرحله بعد که مشکل هم همینجاست محاسباتی مثل مبالغ کسر از پرداخت و مالیات باید برای پرسنل انجام بشه.
sp که تهیه کردم فقط ماه و سال پرداخت رو بعنوان ورودی میگیره و برای کلیه پرسنلی که در این محدوده هستند محاسبات رو انجام میده.
مشکل در محاسبه مشمول مالیات تا کنون (مشمول مالیات انباشته سالیانه) هستش.
مثل آخرین ستون در جدول ضمیمه.
به تعبیر دیگه میشه گفت مشکل در اینجاست که اگر یک کدپرسنلی ورودی داشتیم براحتی با کوئری که در پست #1 گفتم میشه سرجمع فیلد مشمول مالیاتش رو بدست آورد ولی چون مجموعه ای از پرسنل رو داریم نتونستم این کار رو انجام بدم.
(بطور خلاصه سرجمع یک فیلد رو برای هر پرسنل میخوام بدست بیارم.)
با تشکر