الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

بتاريخ:

السلام عليكم ... الله يعطيكم العافية يا شباب
عاوز كود يحسب كمية المنتج الموجودة في المخزن ... علما بأنها تساوي مجموع قيم ما تم استيراده من الموردين لنفس المنتج (( يعني ممكن اني استورد نفس المنتج من أكتر من مستورد )) .
مع العلم انه هاي العميلة بجدول المنتجات ( أوالبضاعة الموجودة بالمخزن ) في جدول product
وقيمة ما تم استيراده من المستورد هي في جدول تاني IMPORTED_PRO...
وشكرا ..

بتاريخ:

السلام عليكم
واللهي انا مش فاهم السؤال كويس بس في فكره انك ممكن تعمل كرسر وطبعا حيتاح ليك الاس كيو ال بكل امكانياتها وتقدر تعمل جوين اول تعمل عمليه حسابيه زي ما انت عايز مهما كان عدد الجوين بس الاهم انك تعرف تنسقه

بتاريخ:
  • كاتب الموضوع

شكرا أخي Zaeen على مشاركتك
بس ياشباب بأتمنى منكم تقرأوا الرسالة بتمعن أكتر لانه ما فيه توضيح أكتر من كدة ..
وشكرا جزيلا والله يعطيكم العافية ..

بتاريخ:

وعليكم السلام ورحمة الله وبركاته..


أخي الكريم...

يعني انت عايز تحسب كمية المنتج (الصنف) الموجود في المستودع ؟...

هل هناك عمليات أخرى غير الاستيراد ( مثلا صرف .. أرصدة افتتاحية ... الخ ) اذا كانت موجودة لازم تعمل حسابها..
وهل هناك اكثر من مستودع؟!

اما اذا لم تكن هناك اي عمليات أخرى (مع انه من المفترض ان تكون) وكان هناك مستودع واحد ..

فيمكنك عمل داله تأخذ رقم الصنف كمدخل .. وتعطيك الكمية من جدول IMPORTED_PRO ..


FUNCTION GET_QTY(I_ITEM_ID VARCHAR2) RETURN NUMBER IS
SUM_QTY NUMBER(4);
BEGIN
 
IF I_ITEM_ID IS NULL THEN RETURN NULL;END IF;

SELECT SUM(QTY) INTO SUM_QTY FROM IMPORTED_PRO  
WHERE ITEM_ID=I_ITEM_ID;

RETURN SUM_QTY;

EXCEPTION WHEN OTHERS THEN RETURN NULL;
 
 
END;



ثم تعمل حقل عرض فقط وتضع فيه ناتج الدالة


ارجو ان يكون هو المطلوب..


بالتوفيق..

بتاريخ:

السلام عليكم ورحمة الله وبركاته

اخي الكريم

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

تقييم مخزون أخر المد حسب طريقة متوسط التكلفة Average Cost لعام :
حيث مخزون أخر المدة يساوي مخزون أول المدة + صافي المشتريات - صافي المبيعات أي
مخزون أول المدة + (المشتريات - مردودات المشتريات ) - ( المبيعات - مردودات المبيعات ) أو
مخزون أول المدة + (المشتريات + مردودات المبيعات ) - ( المبيعات + مردودات المشتريات )
1 - تجميع مخزون أول المدة مع المشتريات مع طرح مردودات المشتريات في جدول واحد ( الكمية من كل صنف * كلفة كل صنف ) وذلك خلال السنة الحالية مع طرح الكميات المباعة نقدا و ذمم وجمع الكميات المرتجعة من المبيعات النقدية و الذمم

create  or  replace  view  v_invt_1 ( dat1 , invt_no1 , invt_nam1 , qty1 , qty2 , qty_pur1  ) as
select  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam , nvl(sum(qty),0) ,
nvl(sum(qty),0) , nvl(sum( qty * pric_pur),0)
from  inventory2
where   to_number(to_char(inv_date,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))	
group by  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam
union all
select  to_number(to_char(pur_dat,'YYYY')) , invt_no , invt_nam , nvl(sum(purch.qty),0) ,  
nvl(sum(purch.qty),0) , nvl(sum(qty * pric_pur),0)
from  purch
where   to_number(to_char(pur_dat,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))		
group by   to_number(to_char(pur_dat,'YYYY')) , invt_no , invt_nam
union all
select  to_number(to_char(pur_dat,'YYYY')) , invt_no , invt_nam , -nvl(sum(purch.qty),0) ,  
-nvl(sum(purch.qty),0) , -nvl(sum(qty * pric_pur),0)
from  purch_rt
where   to_number(to_char(pur_dat,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))		
group by   to_number(to_char(pur_dat,'YYYY')) , invt_no , invt_nam
union all
select  to_number(to_char(inv_date,'YYYY')), invt_no , invt_nam , 0 , -nvl(sum(qty),0) , 0
from inv_sal
where  to_number(to_char(inv_date,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))
group by  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam
union all
select  to_number(to_char(inv_date,'YYYY')), invt_no , invt_nam , 0 , -nvl(sum(qty),0) , 0  
from inv_sal2
where  to_number(to_char(inv_date,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))
group by  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam	
union all
select  to_number(to_char(inv_date,'YYYY')), invt_no , invt_nam , 0 , nvl(sum(qty),0) , 0  
from inv_sal_rt
where  to_number(to_char(inv_date,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))
group by  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam	
union all
select  to_number(to_char(inv_date,'YYYY')), invt_no , invt_nam , 0 , nvl(sum(qty),0) , 0
from inv_sal_rt2
where  to_number(to_char(inv_date,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))
group by  to_number(to_char(inv_date,'YYYY')) , invt_no , invt_nam;





2 - تطبيق معادلة مخزون أخر المدة للسنة الحالية
حيث للوصول لكلفة كل صنف نجمع كلفة كل صنف في مخزون أول المدة مع كلفة الاصناف من خلال الشراء
ثم نطرح كلفة الاصناف من جدول مردواد ت المشتريات
ثم نقسم اجمالي كمية مخزون أول المدة + المشتريات - مردودات المشتريات


create  or  replace  view  v_invt_2  ( invt_no2 , invt_nam2 , qty2 , cost , t_cost )   as	
select invt_no1 , invt_nam1 , sum(qty2) , round((sum(nvl(qty_pur1,0))/sum(nvl(qty1,0))),3) ,
( sum(qty2) * round((sum(nvl(qty_pur1,0))/sum(nvl(qty1,0))),3) )
from  v_invt_1
group by  invt_no1 , invt_nam1	 having  sum(nvl(qty_pur1,0)) <> 0  
order by   invt_no1;


جزاكم الله كل خير

بتاريخ:
  • كاتب الموضوع

شكرا جزيلا اخواني على مجهودكم الطيب
راح أخرب الكود وحأرد عليكم
ســـــــــــــــــــــــــــــلام :)

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.