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

بتاريخ:

السلام عليكم
شباب أبغى اعرف كيف استعمل قيمة موجوده في السجل السابق للسجل اللي أنا فيه
يعني مثلاً اذا كانت القيمة الموجوده في الحقل السابق 100 فا اللي بعدة راح تكون 100+5 فرضاً
طبعاً الموضوع اللي عندي اعقد من كذا بكثير
و المشكلة الأكبر انها لازم تتم خلال select statement يعني ما اقدر استعمل جدول أو trigger
أو اذا ممكن استعملها في التقارير مع العلم ان الجملة عبارة عن 6 جمل مع union و المشكلة هذي في حالة وحدة بس من ال6 حالات
اتمنى اني شرحت المشكلة بشكل واضح
و ألف شكر على تعاونكم مقدماً

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

شباب لقيت FUNCTION اسمها LAG

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

بتاريخ:

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

  • بعد 3 سنة...
بتاريخ:

ياريت حد يقولي الدالة دي بتتنفذ ازاي مع السيكول سيرفر 2005
لأني لم استطيع ان اطبقها في السيكول سيرفر

بتاريخ:

اخي بارك الله فيك ممكن تشرح المشكلة بتفصيل أكثر

بتاريخ:
ياريت حد يقولي الدالة دي بتتنفذ ازاي مع السيكول سيرفر 2005
لأني لم استطيع ان اطبقها في السيكول سيرفر


الأخ الكريم ، عليك دائماً أن تميز بين نوع ونوع من قواعد البيانات ... فالـ SQL-Server غير Oracle وغير Access وغير FoxPro وغير MySQL وغير DBase وغير DB2 و غير .......................... الي آخرة

فبدايتاً يجب أن تعلم أن هناك فرق بين سيكوال وأوراكل ، ونحن الآن في منتدي أوراكل وليس سيكوال !!!

عموماً أنا وجدت الأمر LAG داخل SQL-Server 2000 ولكنني لم أتعامل مع هذه الوظيفة من قبل ، حتي داخل أوراكل نفسها ، بس من الواضح أنها دالة لزيزة ونشكرك علية.

لكن كمبدئياً يمكنك إستخدام الكونسيبت الذي يمكننا تطبيقة علي أي نوع آخر من أنواع قواعد البيانات مثل السيكوال والأكسيس والأوراكل ، أنظر الكود :

CREATE TABLE EMPLOYEES
(
 EMPLOYEES_NO   NUMBER(10),
 EMPLOYEES_NAME VARCHAR2(30),
 CONSTRAINT PK_EMPLOYEES PRIMARY KEY(EMPLOYEES_NO),
 CONSTRAINT UQ_EMPLOYEES_NAME UNIQUE(EMPLOYEES_NAME)
)
/
INSERT INTO EMPLOYEES VALUES(1,'Ahmed');
INSERT INTO EMPLOYEES VALUES(2,'Mostapha');
INSERT INTO EMPLOYEES VALUES(3,'Sara');
COMMIT;

-- Next Record --
SELECT EMPLOYEES_NO, (SELECT MIN(E.EMPLOYEES_NO) 
				  FROM EMPLOYEES E 
				  WHERE E.EMPLOYEES_NO > EMPLOYEES.EMPLOYEES_NO) 
				  AS NEXT_EMPLOYEE 
FROM EMPLOYEES;

-- Back Record --
SELECT EMPLOYEES_NO, (SELECT MAX(E.EMPLOYEES_NO) 
				  FROM EMPLOYEES E 
				  WHERE E.EMPLOYEES_NO < EMPLOYEES.EMPLOYEES_NO) 
				  AS NEXT_EMPLOYEE 
FROM EMPLOYEES;




عموماً سأحاول علي قدر إستطاعتي البحث عن الأمر LAG داخل السيكوال وسأخبرك بمشيئة الله تعالي

أما بخصوص الأوراكل فيمكنك تطبيق المثال السابق ، أو تطبيقة علي الأوراكل كما يل :

select employees_no, (lag(employees_no,1) over (order by employees_no)) As Next_Employee from employees;



وأللي فهمتة من هذه الدالة أنها بتبسط عملية الجلب للسجل التالي بإستخدام تركيبة (lag(employees_no,1) over (order by employees_no)) ، حيث بدأ بالجملة lag وتم تحديد الحقل الذي سيجلب منه القيمة Employees_No ، وبعد كدة حددنا الخطوة ألي هيختوها ، والخطوة هو نقل قيمة حقل Employees_No الي السجل التالي ، لكن لو حبينا ننقلها للسجل بعد التالي ، يبقي هنغير قيمة الخطوة من 1 الي 2 .... وهكذا.

أما بخصوص over (order by employees_no) فدة علشان يعمل ترتيب تصاعدي للحقل المحدد ، علشان يجلب القيمة سواء تصلعدياً أو تنازلياً.


مفيش أحسن من شغل الكونسيبت !!!!



بالتوفيق

بتاريخ:

السلام عليكم
بداية كل عام وانت بخير ؛ اولا هي دالة متميزة وقد اسعفتني من قبل فى اكثر من عمل وخاصة التقارير ؛ ولكن لو لاحظت انها فى عرضها للناتج تجد هناك عمودين الاول وهو الرقم الوظيفي مثلا وبه 14 بيان والحقل الثاني به 11 بيان هذا لو انك جعلت فى ALG 3 وعليه يقوم بعرض 3 اول حقول خالية اى NULL ؛ دعنا نعكس الامور ففرضا ان الناتج المرتجع به اول 3 حقول خالية NULL وانت تريد ان يقوم المؤشر على الفورم بالوقوف والقراءة على الريكورد الرابع الذى به قيمة ؛ هل جربتها من قبل ؟ :(
وشكرا
ميجا
مبرمج اوراكل بوزارة الانتاج الحربي
محاضر اوراكل بمركز الدراسات والبحوث

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

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

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

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

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

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

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.