بتاريخ: 22 يونيو 201312 سنة comment_237773 السلام عليكم ورحمة الله وبركاته لدي مشكلة فى حساب قيمة حقل تراكميا عن طريق جملة سيليكت مثال select product_name,price,avg_cost from product وكانت نتيجة الجملة كالتالي xx,10,8 الحقل الاخير المسمى avg_cost قيمته تساوي القيمة السابقة * الرصيد السايق / السعر الحالي ... وهكذا كل صف ياخد من اللى قبله تم تعديل 22 يونيو 201312 سنة بواسطة New_Boy تقديم بلاغ
بتاريخ: 23 يونيو 201312 سنة comment_237785 السلام عليكم ورحمة الله وبركاته لدي مشكلة فى حساب قيمة حقل تراكميا عن طريق جملة سيليكت مثال select product_name,price,avg_cost from product وكانت نتيجة الجملة كالتالي xx,10,8 الحقل الاخير المسمى avg_cost قيمته تساوي القيمة السابقة * الرصيد السايق / السعر الحالي ... وهكذا كل صف ياخد من اللى قبله السلام عليكم و رحمة الله وبركاتة اخى الكريم اولا بالفعل يا ريت توضح اعمدة الجدول بالاضافة لمزيد من التوضيح بمعنى القيمة السابقة دى بتكون فين هل فى نفس العمود اللى هو avg_cost لو اية يبقى اية حيعرفنى ان دى القيمة السابقة هل فية عمود اخر للتاريخ علشان تقدر تعرف منة القيمة السابقة و الله المستعان تقديم بلاغ
بتاريخ: 24 يونيو 201312 سنة كاتب الموضوع comment_237863 السلام عليكم ورحمة الله وبركاته شاكر جدا اهتمامكم الحقل المطلوب حساب قيمته تراكميا هو avg_cost أول قيمة له تكون مساوية للحقل الذى بجواره وهو Price ثم فى السطر الثاني تكون محسوبة بمعادلة وهى قيمة نفس الحقل فى الصف السابق مقسومة على حاصل ضرب السعر فى السطر الحالي والرصيد فى السطر الحالي ... سينتج قيمة للحقل avg_cost فى الصف رقم 2 بافتراض السابق هو الصف رقم 1 .. وهكذا مع كل سطر اتمنى ان اكون وضحت المشكلة تقديم بلاغ
بتاريخ: 25 يونيو 201312 سنة comment_237899 السلام عليكم ده مثال توضيحى لعمليه احتساب تراكميه ... حضرتك افهمه وعدله لما يناسب احتيجاتك لو الطريقه ده منسبتكش قولى وهقولك طريقه تانيه 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 تقديم بلاغ
بتاريخ: 26 يونيو 201312 سنة comment_237955 السلام عليكم ورحمة الله وبركاته 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 مرتبة حسب الشهر تصاعديا ومن ثم يقوم باحتساب الوسط الحسابي لمبيعات الشهر السابق + الشهر الحالي + الشهر التالي مع تجاهل عدم وجود سطر سابق أو سطر لاحق جزاكم الله كل خير تقديم بلاغ
بتاريخ: 27 يونيو 201312 سنة كاتب الموضوع comment_237982 السلام عليكم ورحمة الله وبركاته شاكر جدا لاخواني واساتذتي الكرام مرفق شرح بالصور لما اريده انا نفذت الكود على الفورم بيلدر والنتيجة ممتازة صراحة ودقيقة .. ولكني اريدها تحسب عن طريق ال view لاستطيع استخدم نتائجها فى تقارير اخرى دون الحاجة لحسابها كل مرة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.