الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عندي واجب في الاوراكل SQL وعجزت احلة

مغلق
بدأه ATmax في 15 أكتوبر 2004 · 8 رد · 1,466 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السؤال كالتالي

س- اكتب جملة استعلام لعرض أسماء الموظفين وعدد السنين التي قضاها كل موظف في العمل ؟

انا حليت بس ما عرفت اكمل

ممكن احد يوضحلي الفكرة لاني ما اني فاهم عدد السنين التي قضاها كل موظف في العمل

اكون شاكرلكم لازم اسلم الواجب يوم الاحد

ارجوكم لاحد يتأخر علي

اخوكم الطالب (( ابو تركي ))

#2

السلام عليكم ..

مرحباً اخي ابو تركي ... و انا فقط هنا احاول ان اساعدك ..

بالنسبة لعملية الأستعراض فهي سهلة .. صح ؟؟؟ :) (فقط جملة Select)

بالنسبة لحساب عدد سنين العمل :

عليك ان تأخذ تاريخ التوظيف Hire Date و تتطرحة من التاريخ الحالي .. اي تاريخ اليوم .. و هنا سوف تستخدم دالة طرح تاريخين و انا لا اذكر الدالة بالضبط .. و لكن ان لم تجدها من الممكن ابحث لك عنها ... و بعد استخدام الدالة تظهر الحل بالسنين ..

ارجوا ان اكون ساعدتك ..

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#3

اعرفها

sysdate

بس كيف اطرح

وبعد فيه to_char

#4
SELECT last_name, (SYSDATE-hire_date) AS days
FROM employees;

سيعيد الفرق بالأيام. اقسمها على 365 للحصول على عدد السنين.

طريقة أخرى:

SELECT last_name, MONTHS_BETWEEN (SYSDATE, hire_date) AS months
FROM employees;

سيعيد عدد الأشهر بين التاريخين. الكسر في العدد المعاد لجزء من الشهر.

اقسم عدد الشهور على 12 لتعرف عدد السنين.

#5

Thats right, but needs ptimization so that it can be in one query.

That is :

select ename, trunc((sysdate-hiredate)/375, 0)"Years At Work" from emp;

Thanks.

#6

مشكور على كل من ساعدني في حل المشكلة

واشكر الاخ على الحلKramer و متعلمـ

اشكرهم باحر الشكر

شكرا على كل من تعاون معي لحل المسألة

#7

ياليت تشرحولي الكود

يعني 375, 0

ايش معناها

#8

NOTE: By fault I've written 375 it supposed to be 365.

TRUNC function takes a number and number of decimal digits. 0 means no need to show the decimals, in the other hand 365 is the number of days in the year.

As a conclusin, you divide on the number of days in the year and round the result to Integer.

تم تعديل هذه المشاركة بواسطة Kramer في 16 أكتوبر 2004 في 18:44

#9

thank you Ms.Kramer

هذا الموضوع مغلق.

مواضيع مشابهة