Tamer_oracle بتاريخ: 1 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 1 يونيو 2005 [/move]الفواتير الساقطة من السريل [move]برجاء الافادة فى هذا الموضوع الهام بنسبة لى او لكل المرجعين اريد عمل تقرير يوضح لى ارقام الفواتير الساقطة من السيريل بمعنى ازي كانت اول فاتورة تبداء برقم 100و اخر فاتورة تم ادخلها مثلا 110و تم ادخال الفاتورة 100 و 101 و 102 و 103 و 107 و 108 و 110اريد تقرير يوضح لى الفواتير الساقطة من السريل وهى فى المثال السابق104 و 105 و 106 و 109برجاء الفادة الهامة فى هذا الموضوع ولكم جزيل الشكر بسم الله الرحمن الرحيم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
kzaghloul بتاريخ: 2 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 2 يونيو 2005 أخي العزيز لقد قمت بوضع مشاركة حول هذا الموضوع في منتدى SQL بعنوان إيجاد أصغر رقم فارغ وإذا لم يجد يتم إحضار (أكبر رقم موجود + 1) وفي جميع الأحوال حل هذا الموضوع كما يلي :الطريقة الأولى : select count(EMP_NO) into count_no from EMPLOYEES; if count_no = 0 then l_id := 1; else select max(EMP_NO) into max_no from EMPLOYEES; if count_no = max_no then l_id := max_no + 1; else for row in (select EMP_NO from EMPLOYEES order by EMP_NO) loop if l_id is null then l_id :=row.EMP_NO ; else l_id := l_id + 1; end if; exit when l_id !=row.EMP_NO ; end loop; end if; end if; Message('tHE MINIMUM EMPTY NUMBER IS ='||l_id); هذه الطرقة معقدة قليلا ولكن يمكن الاستفادة منها لفهم بعض الأوامر المهمة وفيما يلي طريقة أسهل . الطريقة الثانية : declare cursor c is select EMP_NO from EMPLOYEES order by EMP_NO; v number(2); i number(2):=0; begin open c; loop fetch c into v; i:=i+1; exit when i<>v or c%notfound; end loop; Message('tHE MINIMUM EMPTY NUMBER IS ='||I); end; 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Tamer_oracle بتاريخ: 2 يونيو 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 2 يونيو 2005 لقد شاهت هذا الكود و استخدمتة با الفعل جزاك اللة كل خير لكن انا اريد انا اعرف كل الفواتير الساقطة مرة واحدة وليس اول فاتورة (تقرير يظهر لى فاتورة رقم 104 و 105 و 106 و 109 ) مرة واحدة شكرا اخى للتعاون معى 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mody بتاريخ: 3 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 3 يونيو 2005 Dear Mr.Tamer:The procedure steps is as follow: 1-Get minimum and maximum serial number of invoices. 2-Loop for all invoices and check for existance.3-Output non existance invoice.I will assume your table name is invoices with invoiceno as primary key. declare mn_ser number;--minimum serial mx_ser number;--maximum serial flag number(1);beginfor i in mn_ser..mx_ser--loop for each serialloop select count(1) into flag from invoices where invoiceno=i; if flag=0 then --not exist(Missing) dbms_output.put_line(i); end if;end loop;end; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Tamer_oracle بتاريخ: 18 يونيو 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 يونيو 2005 شكرا على الاهتمام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.