View Full Version : مشكل در تهيه Query موجودي انبار
yassser
یک شنبه 01 دی 1387, 21:50 عصر
سلام.
من يك مشكل در تهيه Query موجودي انبار دارم كه با مثال زير اون رو مطرح مي كنم.
در بانك 3 جدول وجود داره با مشخصات زير :
1. كالاها (كد كالا، نام كالا)
2. رسيد كالاها (autonumber، كد كالا، تعداد ورود كالا)
3. خروج كالاها (autonumber، كد كالا، تعداد خروج كالا)
مي خوام يك Query ايجاد كنم كه مجموع رسيد و خروج هر كالا رو بهم نشون بده،
در بانك در قسمت Query من اين كار رو كردم، ولي نتايج درست نيست.
چطور ميشه درستش كرد؟
(البته من اين Query رو قبلا با استفاده از دستور DSum درست كردم ولي مشكلش اينه كه زماني بانك بزرگ باشه كند عمل ميكنه)
با تشكر
nabeel
یک شنبه 01 دی 1387, 23:47 عصر
سلام
یه نگاه مختصری به فایلتون انداختم
مشکل مربوط به ساختار طراحیه
جدا بودن دو تا جدول برای رسید و حواله رو پیشنهاد نمیکنم ( البته نه اینکه نمیشه ولی کار خودتون رو در گزارش گیریها چند برابر میکنید )
البته در فایل موجود شما با توجه به اینکه تعداد کدها در دو جدول ارتباط داده شده یکی نیست به همین دلیل در خروجی رکوردهای بعضاً دوبل حساب شدن و همین امر باعث خطای محاسباتی شده .
اگه آمار ورودیها و خروجیهای انبار توی یه جدول دید بشه و ماهیت این دو تا رو با یه کد از همدیگه جدا کنید به نظر خیلی بهتر میاد .
اینجوری هم توی تهیه گزارشات دچار مشکل نمیشی و هم سرعت محاسبات بالاتره .
موفق باشی
yassser
سه شنبه 03 دی 1387, 10:19 صبح
سلام
راه حلي هم كه آقاي نبيل گفتن هم ميشه
ولي من تونستم به طريقه ديگري درستش كنم
يعني از 2 كوئري ديگه استفاده كردم يكي براي جمع رسيد كالا و ديگري براي جمع خروج كالا و از نتايج اونها در كوئري موجودي انبار استفاده كردم.
nabeel
سه شنبه 03 دی 1387, 21:07 عصر
Yassser عزیز
منظورم از مشکل طراحی رو کامل نتونستم برسونم
اشکالی که فرموده بودید رو میشد مرتفع کرد , که خوشبختانه خودتون تونستید اونو حل کنید ولی ببینید عملاً شما باید در هنگام طراحی یک سیستم اطلاعاتی به بعضی نکات توجه داشه باشید که به طور مثال تنها به دو مورد زیر اشاره میکنم :
- کم کردن تعداد آبجکتها باید یکی از اهداف اصلی طراحی برنامه باشه در واقع تعداد آبجکتها نسبت معکوسی با کارایی داره ( در همه حالت )
- من احتمال میدم که شما در آینده بخواید فیلدهای جدیدی رو به دیتابیس اضافه کنید که از اون جمله فیلدهای تاریخ دور از ذهن نیستن که در اون حالت باز هم همین آش و همین کاسه یعنی شما مجبورید برای یه کار ساده مجدداً متوسل به یه Query حد واسط بشید و ...
- تقسیم بندی اطلاعات بایستی با استفاده از شاخصهایی سهل الوصول به انجام برسند که جدا سازی محل ذخیره اطلاعات دقیقاً در آخرین مرحله قرار دارند و اونهم تنها در صورتی که امکان تجمیع اطلاعات به دلیل مشکلات اساسی وجود نداشته باشه .
توصیه ای که من کردم تنها از اونجا نشات میگرفت که چندین ساله در زمینه آنالیز سیستمها کار میکنم . سیستمهایی که شما بخش کوچیکی از اون رو با عنوان کنترل موجودی میخواید به اجرا برسونید .
با توجه به رویکردی که شما نسبت به سیستم مورد نظر دارید مجدداً تشکیل یک جدول واحد رو پیشنهاد میکنم .
موفق باشید
صلاح کار خویش خسروان
mosaArabi
چهارشنبه 04 دی 1387, 12:04 عصر
با سلام
دوست گرامي مطابق تصور عمل كن مشكل شما در كواري خودت حل ميشه
(البته اگه منظورت را كامل متوجه شده باشم)
موفق باشي
yassser
چهارشنبه 04 دی 1387, 15:46 عصر
با سلام
دوست گرامي مطابق تصور عمل كن مشكل شما در كواري خودت حل ميشه
(البته اگه منظورت را كامل متوجه شده باشم)
موفق باشي
سلام
فيلدي كه در كوئري اضافه كرديد مانده انبار رو نشون ميده ولي
مشكل كوئري اينه كه مجموع تعداد ورود و مجموع تعداد خروج كالاها رو اشتباه ميده
من كه نتونستم راه حلي پيدا كنم كه با يك كوئري بشه حلش كرد
البته راه حل آقاي nabeel هم كه در بالا توضيح دادن هم راه حل خوبيه
يعني اينكه از يك بانك جداگانه استفاده بشه و در اون مجموع تعداد ورود و خروج هر كالا ثبت بشه.
mosaArabi
چهارشنبه 04 دی 1387, 18:51 عصر
با سلام
دوست گرامي من اين نمونه را جهت استفاده شما ميذارم. البته من هم اين برنامه را از همين سايت و با راهنمايي از دوستان قبلا انجام داده ام
موفق باشي
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.