الانتقال إلى المحتوى
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

بتاريخ:

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

 

لدي مشكلة   فى حساب قيمة حقل تراكميا  عن طريق جملة سيليكت

 

مثال                               

select  product_name,price,avg_cost
from product

وكانت نتيجة  الجملة كالتالي

xx,10,8

الحقل الاخير المسمى avg_cost قيمته تساوي القيمة السابقة * الرصيد السايق / السعر الحالي ... وهكذا كل صف ياخد من اللى قبله
 

تم تعديل بواسطة New_Boy

بتاريخ:

ياريت توضح كل الاعمدة

بتاريخ:

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

 

لدي مشكلة   فى حساب قيمة حقل تراكميا  عن طريق جملة سيليكت

 

مثال                               

select  product_name,price,avg_cost
from product

وكانت نتيجة  الجملة كالتالي

xx,10,8

الحقل الاخير المسمى avg_cost قيمته تساوي القيمة السابقة * الرصيد السايق / السعر الحالي ... وهكذا كل صف ياخد من اللى قبله

 

 

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

 

اخى الكريم

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

 

و الله المستعان

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

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

 

شاكر جدا  اهتمامكم 

 

الحقل  المطلوب  حساب قيمته تراكميا هو    avg_cost      أول قيمة له تكون  مساوية  للحقل  الذى بجواره وهو   Price    ثم فى السطر الثاني   تكون  محسوبة  بمعادلة   وهى  قيمة نفس الحقل فى الصف السابق  مقسومة  على حاصل ضرب
  السعر  فى السطر الحالي  والرصيد فى السطر الحالي  ... سينتج   قيمة  للحقل    avg_cost    فى الصف  رقم 2   بافتراض السابق هو الصف  رقم 1  .. وهكذا  مع كل سطر

 

اتمنى ان اكون وضحت  المشكلة

بتاريخ:

السلام عليكم

ده مثال توضيحى لعمليه احتساب تراكميه ... حضرتك افهمه وعدله لما يناسب احتيجاتك

لو الطريقه ده منسبتكش قولى وهقولك طريقه تانيه

CREATE TABLE  balance  
( open_balance  NUMBER (4)  
, qty_in        NUMBER (4)  
, qty_out       NUMBER (4)  
, trans_dt DATE  
);  
insert into balance (open_balance, qty_in, qty_out, trans_dt) values (200,  1,  0,  DATE '2013-05-31');  
insert into balance (open_balance, qty_in, qty_out, trans_dt) values (NULL, 0, -25, DATE '2013-06-07');  
insert into balance (open_balance, qty_in, qty_out, trans_dt) values (NULL ,0, -20, DATE '2013-06-14');  
 
SELECT    b.*  
,   SUM ( NVL (open_balance, 0)  
       + qty_in  
       + qty_out  
       ) OVER (ORDER BY trans_dt) AS result  
FROM      balance  b  
ORDER BY  trans_dt 
 
OPEN_BALANCE     QTY_IN    QTY_OUT TRANS_DT        RESULT
------------ ---------- ---------- ----------- ----------
         200          1          0 31-May-2013        201
                      0        -25 07-Jun-2013        176
                      0        -20 14-Jun-2013        156
بتاريخ:

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

SELECT month, SUM(tot_sales) monthly_sales,
AVG(SUM(tot_sales)) OVER (ORDER BY month 
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) rolling_avg
FROM orders
WHERE year = 2001      AND region_id = 6
GROUP BY month   ORDER BY month;

MONTH    MONTHLY_SALES       ROLLING_AVG
 

(610697+ 428676) / 2

---------              -------------                            -----------

     1                      610697                              519686.5
     2                      428676                              558801.333
     3                      637031                              535617.667
     4                      541146                              590370.667
				

(592935+ 501485 + 606914) / 3

     5                      592935                              545188.667

     6                      501485                              567111.333
     7                      606914                              522973
     8                      460520                              486777.333
     9                      392898                              454511.667
    10                     510117                              478634.667
				

(532889+ 492458) / 2

    11                     532889                              511821.333

    12                     492458                              512673.5

5 -  الكود السابق : يقوم بتجميع المبيعات الشهرية للمنطقة رقم 6 في عام 2001 مرتبة حسب الشهر تصاعديا

ومن ثم يقوم باحتساب الوسط الحسابي لمبيعات الشهر السابق + الشهر الحالي + الشهر التالي

مع تجاهل عدم وجود سطر سابق أو سطر لاحق

 

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

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

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

 

شاكر  جدا لاخواني واساتذتي الكرام   مرفق شرح بالصور  لما اريده 

 

انا نفذت  الكود  على الفورم  بيلدر  والنتيجة  ممتازة  صراحة ودقيقة .. ولكني اريدها تحسب عن طريق  ال  view   لاستطيع  استخدم نتائجها فى  تقارير اخرى  دون الحاجة لحسابها كل مرة

post-113874-0-48072800-1372294606_thumb.jpg

post-113874-0-42242100-1372294623_thumb.jpg

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

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

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

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

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

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.