• 0
silva_ko

حساب رصيد تراكمي للمادة

سؤال

صباح الخير

لدي استفسار

في استعلام حركة مادة في برنامج مستودعات

كيف يمكن عمل رصيد المادة تراكمي أي إذا كان هناك حقل لرصيد المادة بعد كل عملية إخراج أو أدخال كيف يمكن حساب الرصيد النهائي التراكمي للمادة

و لكم الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

11 إجابة على هذا السؤال .

  • 0

صباح الخير للجميع

أرجو من أحد الخبراء مساعدتي على حل هذه المشكلة

و لكم كل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مساء الخير

هل السؤال صعب لهذه الدرجة

أرجو المساعدة من أحد الخبراء

و لكم الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مساء الخير

ما زلت انتظر مساعدة من أحد الخبراء

و لكم الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي العزيز جملة بسيطة

select item_id , sum(item_qty) from items group by item_id

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إلى الأخ بشار شكرا على المساعدة

و لكن يبدو لي أن فكرتي غير واضحة فليس هذا ما أريد

إن ما أريد هو كالآتي

عندما قمت باستعلام لحركة المادة أنا لا أريد الرصيد النهائي بعد كل الحركات ولكن أريد بعد كل حركة (عملية بيع أو شراء ..

أن يقوم بحساب الرصيد الجديد

أي كمثال (كان لدي كمية من مادة 10 قطع

قمت ببيع 2 أريد أن يعطيني في حقل الكمية 8 ثم بعد ذلك اشتريت 3 فأريد أن يعطيني في حقل الكمية 11و هكذا حتى نهاية العمليات على المادة

أرجو أن تكون الفكرة واضحة الآن

و لك كل الشكر على المساعدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
إلى الأخ بشار شكرا على المساعدة

و لكن يبدو لي أن فكرتي غير واضحة فليس هذا ما أريد

إن ما أريد هو كالآتي

عندما قمت باستعلام لحركة المادة أنا لا أريد الرصيد النهائي بعد كل الحركات ولكن أريد بعد كل حركة (عملية بيع أو شراء ..

أن يقوم بحساب الرصيد الجديد

أي كمثال (كان لدي كمية من مادة 10 قطع

قمت ببيع 2 أريد أن يعطيني في حقل الكمية 8 ثم بعد ذلك اشتريت 3 فأريد أن يعطيني في حقل الكمية 11و هكذا حتى نهاية العمليات على المادة

أرجو أن تكون الفكرة واضحة الآن

و لك كل الشكر على المساعدة

الاخ العزيز Silva_ko إن الرصيد الجديد هو فعلياً الرصيد الكلي سواء بعت من المادة أو اشتريت بناءً على نوع الحركة فيفترض أنك عندما تبيع مادة ما تدخل( إما نوع الحركة) و لنفرض أنها بيع يجب أن يقوم النظام عندك بفهم أن الكمية في هذه الحركة هي عملية طرح، أو تدخل أنت الكمية بإشارة الناقص.

و بالتالي فإن الجملة التي رديت عليك فيها ستجمع و تطرح حتى يتم اظهار مجموع الكمية (الرصيد) الفعلي لديك.

select item_id, sum(qty) from transaction table where item_id = 'Item_ID' groups by item_id

هذا تعديل بسيط على الجملة التي كتبتها سابقاً

ضع مكان Transaction table إسم الجدول التذي يتم عليه حركات البيع و الشراء

ضع مكان 'item_id' إسم المادة التي تريد الاستعلام عنها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إلى الأخ بشار

أنا شاكرة جدا لمساعدتك

و لكن إن ما أريده مختلف

فأنا أريد من البرنامج أن يضع لي في حقل منفصل الرصيد بعد كل عملية و ليس الرصيد النهائي بعد كل العمليات

أي مرحلة بمرحلة و بعد كل مرحلة يطرح أو يضيف بحسب العملية التالية من الرصيد السابق

اي بفرض كان لدي 10 قطع و أضفنا 2 يصبح 12 و يكتب لي 12 في حقل الرصيد

ثم أريده أن يأخذ الرصيد 12 و بفرض بعت 3 قطع أن يعطيني الرصيد 9 في حقل الرصي و هكذا إلى النهاية

أتمنى أن أكون قد أوضحت الفكرة جيدا

و أنا شاكرة جدا لك على مجهودك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
فأنا أريد من البرنامج أن يضع لي في حقل منفصل الرصيد بعد كل عملية و ليس الرصيد النهائي بعد كل العمليات

أي مرحلة بمرحلة و بعد كل مرحلة يطرح أو يضيف بحسب العملية التالية من الرصيد السابق

أهلاً بك أختي العزيزة

كيف تميزين حركات البيع من الشراء؟ هل هناك حقل إسمه نوع الحركة ؟ أم أنك عندما تبيعين تدخلي الكمية بإشارة الناقص؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

declare @SalesQty int, @purQty int, @Total int
set @salesQty = (select sum(qty) from dbo.trans where trans_type_id =2)
set @purQty = (select sum(qty) from dbo.trans where trans_type_id =1)



select @total = @purQty - @salesQty
select @salesQty as [كمية البيع],@purQty as [كمية الشراء], @total as [الرصيد]

هذا الكود يضع الرصيد الإجمالي لكل المواد بعد كل عملية إذا كنا نميز الحركات بنوع الحركة (حركة بيع أو شراء) و إذا أردنا مادة معينة نعدل السطر الثاني و الثالث ليصبح

set @salesQty = (select sum(qty) from dbo.trans where trans_type_id =2 and item_id ='item 
id
set @purQty = (select sum(qty) from dbo.trans where trans_type_id =1 and item_id = 'Item ID'

ملاحظات :

where trans_type_id =2 أبدلي مكان رقم 2 رمز حركة البيع إذا كانت رقماً و إذا كانت رمزاً ضعيها بين ' ' و أبدلي الرقم واحد بنوع حركة الشراء

item_id = 'item id' أبدلي بعد إشارة = المادة التي فعلاً أنتي عليها

تم تعديل بواسطه بشار عواد
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صباح الخير

شكرا للأخ بشار على المساعدة

و لكن هل من الممكن أن تشرح لي الكود

و شكرا جزيلاً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
declare @SalesQty int, @purQty int, @Total int
set @salesQty = (select sum(qty) from dbo.trans where trans_type_id =2)
set @purQty = (select sum(qty) from dbo.trans where trans_type_id =1)



select @total = @purQty - @salesQty
select @salesQty as [كمية البيع],@purQty as [كمية الشراء], @total as [الرصيد]

هذا الكود يضع الرصيد الإجمالي لكل المواد بعد كل عملية إذا كنا نميز الحركات بنوع الحركة (حركة بيع أو شراء) و إذا أردنا مادة معينة نعدل السطر الثاني و الثالث ليصبح

set @salesQty = (select sum(qty) from dbo.trans where trans_type_id =2 and item_id ='item 
id
set @purQty = (select sum(qty) from dbo.trans where trans_type_id =1 and item_id = 'Item ID'

ملاحظات :

where trans_type_id =2 أبدلي مكان رقم 2 رمز حركة البيع إذا كانت رقماً و إذا كانت رمزاً ضعيها بين ' ' و أبدلي الرقم واحد بنوع حركة الشراء

item_id = 'item id' أبدلي بعد إشارة = المادة التي فعلاً أنتي عليها

أختي العزيزة

هذا الكود ممكن يكون Stored Procedure تستدعيه كلما صار هناك حركات على مادة معينة بحيث قمنا بشراء مادة كودها '10100A' بكمية 50 حبة

وتمت عملية الشراء بجدول إسمه Daily_Transaction بالمعلومات التالية

10100A , 50 , PUR, 02/06/2008

ثاني يوم قمنا ببيع 30 حبة من هذه المادة و في نفس الجدول

10100A,30,SLS,03/06/2008

لإخراج الرصيد الحالي

declare @SalesQty int, @purQty int, @Total int
set @salesQty = (select sum(qty) from Daily_Transaction where trans_type_id ='SLS' and item_id = '10100A')
set @purQty = (select sum(qty) from Daily_Transaction where trans_type_id ='PUR' and item_id = '10100A')



select @total = @purQty - @salesQty
select @salesQty as [كمية البيع],@purQty as [كمية الشراء], @total as [الرصيد]

الناتج : كمية البيع = 30

كمية الشراء = 50

الرصيد = 20

الكمية التي تريدينها أنتي هي (الرصيد)

و ممكن أن تستخدمي Parameter تمرري له Item_ID و تضعيه بدل '10100A' لجعل الكود يسري على جميع المواد التي تريدينها و ليس مادة واحدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .