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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

جلب (إظهار) آخر عشرة تواريخ


7 رد (ردود) على هذا الموضوع

#1 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 March 2007 - 03:36 PM

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

أريد كتابة جملة Select تقوم بجلب آخر عشر تواريخ تم إدخالها في جدول معين. ولنفرض أن الجدول هو EMP و العمود هو Hiredate فما هي جملة ال select التي يمكن من خالها إسترجاع آخر 10 تواريخ تم إدخالها.


select hiredate from emp
where..................


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

السلام عليكم

#2 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 March 2007 - 03:54 PM

نسيت أن أخبركم أن التاريخ يمكن أن يكون مكررا و بالتالي إستخدام أمر Rownum لن يفيد لأنه يمكن أن يرجع لي آخر 10 سجلات و تكون هذه العشر سجلات لنفس التاريخ و لكن السؤال هو أريد آخر عشرة تواريخ مختلفة .
يعني لو كان عندي ثلاثة موظفين عينوا في نفس التاريخ إريد أ، يرجع تاريخ واحد فقط.

#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 03 March 2007 - 05:16 PM

هذا هو ما فهمته من كلامك و اتمنى ان يكون صحيح


select distinct hiredate from emp
where rownum between 1 and 10
order by hiredate desc;


#4 Fabled Warrior

Fabled Warrior

    عضو

  • الأعضــاء
  • 47 مشاركة

تاريخ المشاركة 03 March 2007 - 06:13 PM

السلام عليكم ارجو ان يعمل هذا الكود علما بأننى لم جربه بعد و لكن الفكره صحيحه ان شاء الله


SELECT TO_CHAR(HIRE_DATE,'YYYY')
FROM ( SELECT DISTINCT TO_CHAR(HIRE_DATE, ' YYYY ' )
FROM EMP )
WHERE ROWNUM<=10;

EMail: Sir.ig@msn.com


#5 Fabled Warrior

Fabled Warrior

    عضو

  • الأعضــاء
  • 47 مشاركة

تاريخ المشاركة 03 March 2007 - 06:24 PM

SELECT HIRE_DATE
FROM ( SELECT DISTINCT TO_CHAR(HIRE_DATE, ' YYYY ' )
FROM EMP )
WHERE ROWNUM<=10;

EMail: Sir.ig@msn.com


#6 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 March 2007 - 10:33 AM

الشكر الجزيل لكل من شارك و كتب ما يفيض به عقله و لكن الحل ليس فيها فلقد قمت بتجربة هذه الخيارات قبل أن أطرح السؤال هنا و لكن دعوني أصيغ ما أريد بطريقة أخرى حتى تصل الفكره واضحة و جليه إن شاء الله.

إفترض أنك تريد أن تظهر أعلى 10 رواتب لكل موظفين الشركة ولنفرض أن عدد الموظفين 50 و لكنك تريد أعلى 10 رواتب فقط و هذه الحاله مشابهة بالضبط للمشكلة التي أواجهها فأنا أريد آخر 10 تواريخ مختلفة تم إدخالها.

بارك الله فيكم و سدد خطاكم.

#7 هانى سند

هانى سند

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 04 March 2007 - 10:59 AM

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

الأخ الكريم
ما فهمته انك تريد اظهار اكبر 10 تواريخ مع استبعاد التكرار

و اعتقد ان هذه السيليكت تقوم بذلك
و هي نفس سيليكت الtop n view
و لكن مع اضافة distinct في الsubquery فقط

SELECT ROWNUM RANK, hiredate
  FROM (SELECT DISTINCT hiredate
				   FROM emp
				  WHERE hiredate IS NOT NULL
			   ORDER BY hiredate DESC)
 WHERE ROWNUM <= 10

أرجو الاجابة ان كان هذا ما تريد ام لا
مع تمنياتي بالتوفيق

#8 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 March 2007 - 11:48 AM

بارك الله فيك أخي Hanon_OCP مشكور على جهدك الطيب ....نعم هذا ما قصدته بالضبط و قد حلت لي مشكلتي .
بارك الله فيك و سدد خطاك مع أنني كنت أستخدم Select معقده جدا أعرضها هنا ليستفيد الجميع إن شاء الله.


SELECT DISTINCT "Load Date"
FROM
( SELECT ROWNUM "RN",substation_name,TO_CHAR(load_date,'dd-mm-yyyy') "Load Date",
(SELECT MAX(ROWNUM)-10 FROM substation_def,subs_outage_loads WHERE
substation_def.substation_no=subs_outage_loads.substation_no ) "max-10" ,
(SELECT MAX(ROWNUM) FROM substation_def,subs_outage_loads WHERE
substation_def.substation_no=subs_outage_loads.substation_no ) "max"
FROM substation_def,subs_outage_loads
WHERE substation_def.substation_no=subs_outage_loads.substation_no )

WHERE "RN" > "max-10" ORDER BY "Load Date" DESC



مع العلم أن أسماء الجداول هي الاسماء التي أستخدمها أنا