بتاريخ: 28 سبتمبر 200520 سنة comment_48402 السلام عليكم ورحمه الله وبركاتههل من طريقة للاستعلام من جدول ليحضر لي سجل واحد فقط من مجموعه سجلات مستعلمةمثال GET_INF " SELECT TOP 1 * FROM CPIS_EMPLOYEES_POSITIONS WHERE ID_EMPL='" & Me.ID_EMPL & "'" _ & " AND START_DT<=" & (Me.FROM_HDT) _ & " ORDER BY ID_EMPL,START_DT DESC;" هذا الكود من الاكسس يحضر لي سجل واحد فقط من الاسفل هل من طريقة مماثلة في الاوركلبارك الله فيكم تقديم بلاغ
بتاريخ: 28 سبتمبر 200520 سنة comment_48405 The high-level structure of a Top-N analysis query is: SELECT [column_list], ROWNUM FROM (SELECT [column_list] FROM table ORDER BY Top-N_column) WHERE ROWNUM <= N; تقديم بلاغ
بتاريخ: 1 أكتوبر 200520 سنة comment_48631 إضافة إلى ما بينه لك أخي chayah .. أحب أن أوضح لك الأمــر حتى تستفيد أكثر,إن تحديد عدد السجلات المراد استرجاعها يتم عن طريق العمود "الخفي" ROWNUM - والذي لايظهر إلا في حال إضافته في SELECT clause كما هو واضح في مثال أخي chayah وعليه، فأن الأمــر يرجع إليك في إظهار قيمة ROWNUM.أما في ما يخص الإسترجاع من أسفل أو من أعلى: فإن ROWNUM ليس لها علاقة بالموضوع بتاتاً!! إنا يتم التحكم في ذلك بواسطة ORDER BY DESC/ASC clauseلكن هنالك أمر مهم يجب وضعه في الإعتبار .. وهو أن عملية الترتيب بواسطة ORDER BY تتم بعد تحرير أو إنشاء قيم ROWNUM ، ولذلك إذا كنت تود الحصول على أعلى/أقل رواتب مثلاً يجب عليك ترتيب المرتبات أولاً (DESC أو ASC كما تعلم تتحكم فيما إذا كان الترتيب تصاعدي/تنازلي "أعلى/أسفل") في شكل subquery كما هو موضح في المثال أعلاه، ثم بعد ذلك إستخدام قيمة ROWNUM لتحديد ما إذا كانت تريد استرجاع أعلى/أقل 1،2،3... راتب في WHERE clauseملاحيظ: * العلاقة التي تلي ROWNUM في WHERE clause دائما تكون "أصغر/أقل من" أو "BETWEEN" لكن يجب أن ان تكون القيمة الأولى عند استخدام BETWEEN هي 1 أو 0 أو رقم سالب !!!* يجب أن تضع قيمة NULL في الإعتبار في حال الترتيب على حسب قيمة الأعلي !! لأن NULL تأتي في المرتبة الأولى !! ولذلك إذا كنت لا ترغب في استرجاع السجلات التي تحتوي على NULL ببساطة أضف:AND <column_name> IS NOT NULL تم تعديل 1 أكتوبر 200520 سنة بواسطة عروة تقديم بلاغ
بتاريخ: 27 أكتوبر 201015 سنة comment_202307 كيف اسوي نفس العمليه لاستعلم عن اخر موظفين اثنين عندياي اخر من توظف عندي واسف لاني مبتداء الرجاء اذا وجدت اجابه هذا الايميل تبعي [email protected]ومشكور اخي العزيز تقديم بلاغ
بتاريخ: 27 أكتوبر 201015 سنة comment_202332 كيف اسوي نفس العمليه لاستعلم عن اخر موظفين اثنين عندياي اخر من توظف عندي واسف لاني مبتداء الرجاء اذا وجدت اجابه هذا الايميل تبعي [email protected]ومشكور اخي العزيز ================================================================ select emp_name from emps where ROWNUM <=2 and hire_date is not null order by hire_date desc تقديم بلاغ
بتاريخ: 27 أكتوبر 201015 سنة comment_202352 كيف اسوي نفس العمليه لاستعلم عن اخر موظفين اثنين عندياي اخر من توظف عندي واسف لاني مبتداء الرجاء اذا وجدت اجابه هذا الايميل تبعي [email protected]ومشكور اخي العزيز ================================================================select emp_namefrom empswhere ROWNUM <=2 and hire_date is not nullorder by hire_date desc السلام عليكمSelect Empno From (Select Empno, Rank() Over(Order By Hiredate Desc) As Seq From Scott.Emp) Where Seq <= 2 أو بطريقة أسهل: Select Empno From( Select Empno From Scott.Emp Order By Hiredate Desc) Where Rownum < 3 بالتوفيق. تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.