بتاريخ: 3 مارس 200719 سنة comment_93129 السلام عليكم و رحمة الله و بركاته إخواني الكرام أريد كتابة جملة Select تقوم بجلب آخر عشر تواريخ تم إدخالها في جدول معين. ولنفرض أن الجدول هو EMP و العمود هو Hiredate فما هي جملة ال select التي يمكن من خالها إسترجاع آخر 10 تواريخ تم إدخالها. select hiredate from emp where.................. بارك الله فيكم أرجو الرد السريع إن أمكن.السلام عليكم تقديم بلاغ
بتاريخ: 3 مارس 200719 سنة كاتب الموضوع comment_93131 نسيت أن أخبركم أن التاريخ يمكن أن يكون مكررا و بالتالي إستخدام أمر Rownum لن يفيد لأنه يمكن أن يرجع لي آخر 10 سجلات و تكون هذه العشر سجلات لنفس التاريخ و لكن السؤال هو أريد آخر عشرة تواريخ مختلفة .يعني لو كان عندي ثلاثة موظفين عينوا في نفس التاريخ إريد أ، يرجع تاريخ واحد فقط. تقديم بلاغ
بتاريخ: 3 مارس 200719 سنة comment_93137 هذا هو ما فهمته من كلامك و اتمنى ان يكون صحيح select distinct hiredate from emp where rownum between 1 and 10 order by hiredate desc; تقديم بلاغ
بتاريخ: 3 مارس 200719 سنة comment_93144 السلام عليكم ارجو ان يعمل هذا الكود علما بأننى لم جربه بعد و لكن الفكره صحيحه ان شاء اللهSELECT TO_CHAR(HIRE_DATE,'YYYY')FROM ( SELECT DISTINCT TO_CHAR(HIRE_DATE, ' YYYY ' )FROM EMP )WHERE ROWNUM<=10; تقديم بلاغ
بتاريخ: 3 مارس 200719 سنة comment_93146 SELECT HIRE_DATEFROM ( SELECT DISTINCT TO_CHAR(HIRE_DATE, ' YYYY ' )FROM EMP )WHERE ROWNUM<=10; تقديم بلاغ
بتاريخ: 4 مارس 200719 سنة كاتب الموضوع comment_93188 الشكر الجزيل لكل من شارك و كتب ما يفيض به عقله و لكن الحل ليس فيها فلقد قمت بتجربة هذه الخيارات قبل أن أطرح السؤال هنا و لكن دعوني أصيغ ما أريد بطريقة أخرى حتى تصل الفكره واضحة و جليه إن شاء الله.إفترض أنك تريد أن تظهر أعلى 10 رواتب لكل موظفين الشركة ولنفرض أن عدد الموظفين 50 و لكنك تريد أعلى 10 رواتب فقط و هذه الحاله مشابهة بالضبط للمشكلة التي أواجهها فأنا أريد آخر 10 تواريخ مختلفة تم إدخالها.بارك الله فيكم و سدد خطاكم. تقديم بلاغ
بتاريخ: 4 مارس 200719 سنة comment_93191 السلام عليكم و رحمة الله وبركاته الأخ الكريم ما فهمته انك تريد اظهار اكبر 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 أرجو الاجابة ان كان هذا ما تريد ام لا مع تمنياتي بالتوفيق تقديم بلاغ
بتاريخ: 4 مارس 200719 سنة كاتب الموضوع comment_93204 بارك الله فيك أخي 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 مع العلم أن أسماء الجداول هي الاسماء التي أستخدمها أنا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.