PDA

View Full Version : کم کردن دو رکورد از هم



خانم گل
پنج شنبه 05 اردیبهشت 1387, 22:39 عصر
برای انبار دارم برنامه می نویسم. کالاهایی که وارد میشه تعدادشون همراه با تاریخ توی یه جدول و تعداد کل اون کالا توی یه جدول دیگه update میشه برای ورود کالا مشکلی ندارم اما برای خروجش مشکل دارم. چطوری وقتی کالایی خارج میشه تعدادش رو از تعداد کلی کم کنم و تعداد کل رو دوباره update کنم؟

حمیدرضاصادقیان
پنج شنبه 05 اردیبهشت 1387, 23:28 عصر
شما میتونی یک تریگر بنویسی روی جدولی که ازش کالا بفروش میرسه. تریگر هم برای زمان update باشه. به این طریق مقدار اونو از جدول مذکور کم میکنی.
یا در داخل برنامه ات وقتی که کالای فوق رو فروختی میدونی چه تعداد هست ، همونو از جدول دیگه ات کم کن.
اولی در دیتابیس هست دومی در داخل برنامه ات.
موفق باشید.

DataMaster
جمعه 06 اردیبهشت 1387, 10:44 صبح
همونطور که اقای صادقیان گفتند هم میتونی عمل کنی
ولی معمولا اعمال محاستباتی رو بهتره با کوئری انجام بدین

Amir_Safideh
جمعه 06 اردیبهشت 1387, 10:53 صبح
شما حتما لازم نیست که باقیمانده کالا رو دائما UpDate کنید . البته در بعضی مواقع که سرعت گزارشگیری مشکل ساز بشه میشه از روش UpDate استفاده کرد ولی من خودم اینکار رو نمیکنم که یه جدولی طراحی کنم که دائما باقیمانده کالا رو توش UpDate کنم . شما یه جدول ورودی داری و یه جدول خروجی . خوب حالا به راحتی میتونی زمان گزارشگیری باقیمانده کالا رو با یه کوئری ساده بدست بیاری به این صورت جمع کل کالای وارد شده منهای جمع کل کالای خارج شده . و میبینی که خروجی کاملا صحیح خواهد بود و نیاز به یه جدول سوم و UpDate کردن دائم جدول سوم نیست .
--------------
موفق باشید .

خانم گل
شنبه 07 اردیبهشت 1387, 20:40 عصر
ممنون از کمکتون. میشه یه نمونه query مربوط به کم کردن کالا رو برام بذارید؟

Amir_Safideh
شنبه 07 اردیبهشت 1387, 21:20 عصر
به نام جدولها دقت کنی متوجه میشی . یه جدول برای نام کالا یه جدول برای ورود کالا و یه جدول برای خروج کالا . طبق توضیخاتی که دادی فکر کنم ساختار جداولتون باید همین طور باشه . شما کوئری زیر رو طبق نیاز خودت تغییر بده .

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
---------
موفق باشید .

SYNDROME
شنبه 07 اردیبهشت 1387, 21:24 عصر
با Query می توانید به دست بیاورید ولی اگر تعداد رکوردها بالا برود سیستم را کند می کند که کار چندان درستی نیست.
به نظر من هم نوشتن triggerو Update کردن یک فیلد می تواند گزینه مناسبی باشد.
موفق باشید