بتاريخ: 5 سبتمبر 200520 سنة comment_46560 السلام عليكمشباب أبغى اعرف كيف استعمل قيمة موجوده في السجل السابق للسجل اللي أنا فيه يعني مثلاً اذا كانت القيمة الموجوده في الحقل السابق 100 فا اللي بعدة راح تكون 100+5 فرضاً طبعاً الموضوع اللي عندي اعقد من كذا بكثير و المشكلة الأكبر انها لازم تتم خلال select statement يعني ما اقدر استعمل جدول أو trigger أو اذا ممكن استعملها في التقارير مع العلم ان الجملة عبارة عن 6 جمل مع union و المشكلة هذي في حالة وحدة بس من ال6 حالاتاتمنى اني شرحت المشكلة بشكل واضح و ألف شكر على تعاونكم مقدماً تقديم بلاغ
بتاريخ: 5 سبتمبر 200520 سنة كاتب الموضوع comment_46567 شباب لقيت FUNCTION اسمها LAG بس مشكلتها انها تجيب القيمة الموجودة في الجدول مو القيمة الموجودة في الاستعلامفا أنا مازلت في انتظار اقتراحاتكم تقديم بلاغ
بتاريخ: 5 سبتمبر 200520 سنة كاتب الموضوع comment_46568 هذا شرح الـFUNCTIONhttp://www.adp-gmbh.ch/ora/sql/analytical/lag.html تقديم بلاغ
بتاريخ: 12 سبتمبر 200520 سنة comment_46987 اشكرك اخي على هذا االشرح المبسط وجزاك الله الف خير ونحن في انتظار الدرس القادموشكرا تقديم بلاغ
بتاريخ: 29 نوفمبر 200817 سنة comment_143988 ياريت حد يقولي الدالة دي بتتنفذ ازاي مع السيكول سيرفر 2005لأني لم استطيع ان اطبقها في السيكول سيرفر تقديم بلاغ
بتاريخ: 5 ديسمبر 200817 سنة comment_144385 اخي بارك الله فيك ممكن تشرح المشكلة بتفصيل أكثر تقديم بلاغ
بتاريخ: 5 ديسمبر 200817 سنة comment_144393 ياريت حد يقولي الدالة دي بتتنفذ ازاي مع السيكول سيرفر 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) فدة علشان يعمل ترتيب تصاعدي للحقل المحدد ، علشان يجلب القيمة سواء تصلعدياً أو تنازلياً.مفيش أحسن من شغل الكونسيبت !!!!بالتوفيق تقديم بلاغ
بتاريخ: 7 ديسمبر 200817 سنة comment_144469 السلام عليكمبداية كل عام وانت بخير ؛ اولا هي دالة متميزة وقد اسعفتني من قبل فى اكثر من عمل وخاصة التقارير ؛ ولكن لو لاحظت انها فى عرضها للناتج تجد هناك عمودين الاول وهو الرقم الوظيفي مثلا وبه 14 بيان والحقل الثاني به 11 بيان هذا لو انك جعلت فى ALG 3 وعليه يقوم بعرض 3 اول حقول خالية اى NULL ؛ دعنا نعكس الامور ففرضا ان الناتج المرتجع به اول 3 حقول خالية NULL وانت تريد ان يقوم المؤشر على الفورم بالوقوف والقراءة على الريكورد الرابع الذى به قيمة ؛ هل جربتها من قبل ؟ وشكراميجامبرمج اوراكل بوزارة الانتاج الحربي محاضر اوراكل بمركز الدراسات والبحوث تم تعديل 7 ديسمبر 200817 سنة بواسطة khaledmega تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.