ayman_tamim بتاريخ: 14 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 14 يونيو 2005 (معدل) فى شاشة لدى يوجد تاريخ و هوة بهيئة dd-mm-yyyyو اردت ان اختار اكبر سيريال موجود فى هذة السنة yyyyعلما انة يوجد اعوام اخرى مسجلة مثل 2005-2004-2003و حاولت بجميعالطرق الممكنة و لم يحدث فرق BEGIN SELECT MAX(nvl(V_SERIAL_SIGAL,0)+1) INTO :V_SERIAL_SIGAL from V_SIGIL WHERE to_date(:V_DATE) in (select distinct TO_date(V_DATE,'YYYY')from V_SIGIL); END; تم تعديل 14 يونيو 2005 بواسطة ayman_tamim اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafa76 بتاريخ: 14 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 14 يونيو 2005 BEGIN SELECT MAX(nvl(V_SERIAL_SIGAL,0)+1) INTO :V_SERIAL_SIGAL from V_SIGIL WHERE V_DATE=(select max(V_DATE)from V_SIGIL); END; اكبر رقم موظف تعين في اخر عام BEGIN SELECT MAX(empno) INTO :V_empno from emp WHERE hiredate=(select max(hiredate) from emp); END; عسى ان اكون قد فهمت مبتغاك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mah_dahshan بتاريخ: 14 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 14 يونيو 2005 BEGIN SELECT MAX(nvl(V_SERIAL_SIGAL,0)+1)INTO :V_SERIAL_SIGAL from V_SIGIL WHERE to_date(:V_DATE) in (select distinct TO_CHAR(V_DATE,'YYYY')from V_SIGIL); END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ayman_tamim بتاريخ: 15 يونيو 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 15 يونيو 2005 عسى ان اكون قد فهمت مبتغاك انه قريب و لكن ليس هوة المطلوبحاليا جميع تواريخ الادخال تكون فى سنة 2005و لكنهم سوف يدخلون جميع السجلات فى السنوات الماضيةاذن كل سنة ليها ارقام تسلسلية متشابهةمثال فى سنة 2000 لديهم من رقم 1 الى رقم 500 فى السجلاتو فية سنة 2001 لديهم من رقم 1 الى رقم 700 و هكذافاريد ان ازيد المسلسل الخاص بالسنةاما الكود الذى تم ارفاقة فانة يعمل على اكبر تاريخ فقطو ليس تواريخ قديمة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
kzaghloul بتاريخ: 15 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 15 يونيو 2005 حسب المشروحات التي ذكرتها فيجب ان يتم إدخال تاريخ السجل او سنة السجل قبل إظهار الرقم (رقم السجل) وهنا إذا تم إدخال تاريخ السجل يكون الحل كما يلي :SELECT MAX(nvl(V_SERIAL_SIGAL,0)+1) INTO :V_SERIAL_SIGAL from V_SIGIL WHERE TO_CHAR(V_DATE,'YYYY')=TO_CHAR(:V_DATE,'YYYY');أما إذا أدخلت سنة السجل أولاً ولنسمه (v_year) عندئذ الحل هو :SELECT MAX(nvl(V_SERIAL_SIGAL,0)+1) INTO :V_SERIAL_SIGAL from V_SIGIL WHERE TO_CHAR(V_DATE,'YYYY')=:V_YEAR;أتمنى ان يكون هذا حل ما طلبت اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.