نمایش نتایج 1 تا 7 از 7

نام تاپیک: کم کردن دو رکورد از هم

  1. #1

    کم کردن دو رکورد از هم

    برای انبار دارم برنامه می نویسم. کالاهایی که وارد میشه تعدادشون همراه با تاریخ توی یه جدول و تعداد کل اون کالا توی یه جدول دیگه update میشه برای ورود کالا مشکلی ندارم اما برای خروجش مشکل دارم. چطوری وقتی کالایی خارج میشه تعدادش رو از تعداد کلی کم کنم و تعداد کل رو دوباره update کنم؟

  2. #2
    شما میتونی یک تریگر بنویسی روی جدولی که ازش کالا بفروش میرسه. تریگر هم برای زمان update باشه. به این طریق مقدار اونو از جدول مذکور کم میکنی.
    یا در داخل برنامه ات وقتی که کالای فوق رو فروختی میدونی چه تعداد هست ، همونو از جدول دیگه ات کم کن.
    اولی در دیتابیس هست دومی در داخل برنامه ات.
    موفق باشید.

  3. #3
    کاربر دائمی آواتار DataMaster
    تاریخ عضویت
    تیر 1382
    محل زندگی
    مشهد الرضا
    پست
    634
    همونطور که اقای صادقیان گفتند هم میتونی عمل کنی
    ولی معمولا اعمال محاستباتی رو بهتره با کوئری انجام بدین

  4. #4
    شما حتما لازم نیست که باقیمانده کالا رو دائما UpDate کنید . البته در بعضی مواقع که سرعت گزارشگیری مشکل ساز بشه میشه از روش UpDate استفاده کرد ولی من خودم اینکار رو نمیکنم که یه جدولی طراحی کنم که دائما باقیمانده کالا رو توش UpDate کنم . شما یه جدول ورودی داری و یه جدول خروجی . خوب حالا به راحتی میتونی زمان گزارشگیری باقیمانده کالا رو با یه کوئری ساده بدست بیاری به این صورت جمع کل کالای وارد شده منهای جمع کل کالای خارج شده . و میبینی که خروجی کاملا صحیح خواهد بود و نیاز به یه جدول سوم و UpDate کردن دائم جدول سوم نیست .
    --------------
    موفق باشید .

  5. #5
    ممنون از کمکتون. میشه یه نمونه query مربوط به کم کردن کالا رو برام بذارید؟

  6. #6
    به نام جدولها دقت کنی متوجه میشی . یه جدول برای نام کالا یه جدول برای ورود کالا و یه جدول برای خروج کالا . طبق توضیخاتی که دادی فکر کنم ساختار جداولتون باید همین طور باشه . شما کوئری زیر رو طبق نیاز خودت تغییر بده .
    Select (Select Sum(Field_VazneVarede)From Table_Vorud Where Table_Vorud.Field_KalaID = Table_Kala.Field_Kala)As VazneVarede,
    (Select Sum(Field_VazneKhareje)From Table_Khoruj Where Table_Khoruj.Field_KalaID = Table_Kala.Field_Kala)As VazneKhareje,
    (Select Sum(Field_VazneVarede)From Table_Vorud Where Table_Vorud.Field_KalaID = Table_Kala.Field_Kala)-
    (Select Sum(Field_VazneKhareje)From Table_Khoruj Where Table_Khoruj.Field_KalaID = Table_Kala.Field_Kala)As VazneMande
    From Table_Kala
    Group By Field_KalaID

    ---------
    موفق باشید .

  7. #7
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

    با Query می توانید به دست بیاورید ولی اگر تعداد رکوردها بالا برود سیستم را کند می کند که کار چندان درستی نیست.
    به نظر من هم نوشتن triggerو Update کردن یک فیلد می تواند گزینه مناسبی باشد.
    موفق باشید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •