الانتقال إلى المحتوى

مساعدة لحساب العمر


sonic

Recommended Posts

السلام عليكم ورحمة الله وبركاته

ممكن مساعدة

لنفرض مثلا لدي جدول وهو

STUDENTS
NAME
AGE

اريد طريقة لحساب عمر الطلاب عند مرور السنون يحدث تحديث للعمر، يزداد عمر الطالب بصورة (اوتماتيكية) ولا داعي لتحديث عمره كل سنة بواسطة مبرمج قاعدة البيانات

انا اعرف هذا الكود {Age = Today - DateOfBirth}

ولكن لا اعرف اين اسخدمه او اضعه؟ هل ممكن ان يكون Trigger

ممكن تخبروني الطريقة لو سمحتوا جزاكم الله كل خير

تم تعديل بواسطة sonic
رابط هذا التعليق
شارك

شكرا لك ولكن اين اجد ال FORMULA حاولت كل الطرق لايجادها ولم اجدها؟ مع العلم استخدم Oracle 9i قاعدة بيانات والواجهة ASP.net

اسف على كثرة الاسئلة ولكن مبتدئ بالاوراكل

جزاك الله كل خير اخي الكريم على الرد

رابط هذا التعليق
شارك

السلام عليكم....
هناك ملاحظة هامة في تصميم قواعد المعطيات:
من أنواع الواصفات (الحقول) للكائن(الجدول)
الواصفة المشتقة: هي الواصفة التي يتم حساب قيمتها استناداً إلى واصفات أخرى، بالاعتماد على خوارزميات محددة، بحيث يمكن الاستغناء عن تخزينها في قاعدة المعطيات. فعلى سبيل المثال يمكن حساب عمر الموظف اعتمادا على تاريخ ميلاده المُخزن في قاعدة المعطيات.
لذلك من الخطأ الفادح تخزين العمر في الجدول و يجب تخزين تاريخ الميلاد عوضاً عنه و عندما تحتاج للعمر تقوم بحسابه ببساطة كالتالي:
(التاريخ الحالي - تاريخ الميلاد) / 360
(sysdate-Birthdate)/360

تم تعديل بواسطة TROYMAN
رابط هذا التعليق
شارك

اسمع ياابني ياسونيك
شوف انت تتعامل مع الاوراكل فورمز صح؟؟؟؟
من هذا الفورم انت تقدر تحط الtrigger
ممكن يكون على مستوى الفورم اي سوف يرنن اول ماتفتح الفورم
داخل الtrigger تحط الformula اللي انت تتكلم عنها



بس طبعا لازم تخزن تاريخ الميلاد في متغير date
select date_of_birth into date from user_info where user_id=:user_id ; >>>>>>>>>>>>>>ok

لي عودة.....

رابط هذا التعليق
شارك

اخي hrs ردك جدا اسعدني

اخي لا استخدم الاوراكل فورز ولكن استخدم Oracle9i DataBase وربط قاعدة البيانات في ASP.NET

ولكن توجد لدي trigger هل من الممكن وضع الشرط فيها

يجب عمل ذلك لانه مهم جدا لمشروعي فلا يصح وضع العمر بصورة مباشرة يجب وضع تاريخ الميلادة بوجود طريقة يجب اضافتها لتحسب العمر كل سنة...

جزاك الله كل خير اخي الكريم hrs

تم تعديل بواسطة sonic
رابط هذا التعليق
شارك

يتبع ..
بس طبعا لازم تخزن تاريخ الميلاد في متغير date
select date_of_birth into date from user_info where user_id=:user_id ; >>>>>>>>>>>>>>ok

....................بعدين لما تخزنه في متغير تقدر تستخدمه في الفورملا ..



انا بصراحة لم اتعامل مع الasp.net
ولكن كلامك منطقيا صح


فاذا عندك حلين .. اما انك تجرب او انك تنتظر الاجابة من الخبراء وان شاء الله ماراح يقصرون
موفق سونيك

بس فيه مشكلة في معادلتك راح تطلع تاريخ وليس عمر!!!

اخ تروي مان
معادلتك غريبة .. كيف تطرح تاريخ من تاريخ والناتج تقسمه على رقم؟؟؟؟ مختلفين في النوع؟؟؟
يعني لحساب العمر لازم نوصل للسنة .. شنو الطريقة؟؟

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

إذا فرضنا إن الجدول بيتكون من أربع أعمده .

create table students(student_no number(5),student_name varchar2(15),birth_date date,age number(2))


وتريد عند إدخال الـbirth_date يقوم بحساب العمر ووضعه فى الـage .
هتعمل db trigger كالآتى :

create or replace trigger trg1 
before insert on emp
referencing old as old new as new
for each row
begin select trunc(months_between(sysdate,:new.birth_date)/12) into :new.age from dual;
end;

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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