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

استخلاص العام فقط yyyy

Featured Replies

بتاريخ:

فى شاشة لدى يوجد تاريخ و هوة بهيئة 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;

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

بتاريخ:

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;



عسى ان اكون قد فهمت مبتغاك

بتاريخ:

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;

بتاريخ:
  • كاتب الموضوع
عسى ان اكون قد فهمت مبتغاك

انه قريب و لكن ليس هوة المطلوب
حاليا جميع تواريخ الادخال تكون فى سنة 2005
و لكنهم سوف يدخلون جميع السجلات فى السنوات الماضية

اذن كل سنة ليها ارقام تسلسلية متشابهة

مثال فى سنة 2000 لديهم من رقم 1 الى رقم 500 فى السجلات
و فية سنة 2001 لديهم من رقم 1 الى رقم 700 و هكذا

فاريد ان ازيد المسلسل الخاص بالسنة
اما الكود الذى تم ارفاقة فانة يعمل على اكبر تاريخ فقط
و ليس تواريخ قديمة
بتاريخ:

حسب المشروحات التي ذكرتها فيجب ان يتم إدخال تاريخ السجل او سنة
السجل قبل إظهار الرقم (رقم السجل) وهنا إذا تم إدخال تاريخ السجل يكون الحل كما يلي :
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;
أتمنى ان يكون هذا حل ما طلبت
:D

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

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

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

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

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

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.