Rolo بتاريخ: 21 يونيو 2007 تقديم بلاغ مشاركة بتاريخ: 21 يونيو 2007 كيف احصل علي ثاني اكبر راتب في جدول الموظفين تاني اعلي راتب فقط في ريكورد لوحدو اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Masrico بتاريخ: 21 يونيو 2007 تقديم بلاغ مشاركة بتاريخ: 21 يونيو 2007 جرب هذا الكود select salary , rownum from (select salary from employees order by salary desc) where rownum = 2; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
miash80 بتاريخ: 23 يونيو 2007 تقديم بلاغ مشاركة بتاريخ: 23 يونيو 2007 بسم الله الرحمن الرحيمممكن أخي العزيز أن تستخدم هذا الكودselect max(sal) from empwhere sal <(max(sal) from empاخوك موسى miash80 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Masrico بتاريخ: 23 يونيو 2007 تقديم بلاغ مشاركة بتاريخ: 23 يونيو 2007 بسم الله الرحمن الرحيم select max(sal)from empwhere sal <(max(sal) from emp أعتقد ان هذا الكود سوف يولد خطأ فالدالة max لا يجوز ان تستخدم مع where لأن الـ group function لا يجوز مناداتها مع where .... وان كنا نريد إستخدامها لفلترة البيانات فمكانها مع Having وليس مع where اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
zakarotta بتاريخ: 30 يوليو 2007 تقديم بلاغ مشاركة بتاريخ: 30 يوليو 2007 بالفعل الأكواد السابقة خطأالكود الصحيح هو SELECT max(sal) FROM emp WHERE sal <> (select max(sal) from emp); بالتوفيق للجميع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
okm461 بتاريخ: 31 يوليو 2007 تقديم بلاغ مشاركة بتاريخ: 31 يوليو 2007 كيف احصل علي ثاني اكبر راتب في جدول الموظفين تاني اعلي راتب فقط في ريكورد لوحدو :angry: نعم هناك بالفعل دالة اسمها rankselect emp,sale,rank()over(orderby sale)rank from emp_sale اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الكونت بتاريخ: 7 مايو 2008 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2008 السلام عليكم هذا هو الكودselect max(sal) from emp where sal <(select max(sal) from emp); tوالفكره ببساطه انو اجيب اكبر راتب وبعدين اجيب اكبر راتب بحيث يكون اصغر من الراتب الي جبته بالاول اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 8 مايو 2008 تقديم بلاغ مشاركة بتاريخ: 8 مايو 2008 السلام عليكمالحل هو الصحيح هو select sal , rownum from (select sal from emp order by sal desc) where rownum <=2 ; وشكراميجا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمرو النادي بتاريخ: 11 مايو 2008 تقديم بلاغ مشاركة بتاريخ: 11 مايو 2008 select max (sal)from empwhere sal <> (select max ( sal) from emp); اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khairo2003 بتاريخ: 30 نوفمبر 2008 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2008 السلام عليكم ورحمة الله وبركاتهأخى الكريم أريد كود للحصول على إسم وراتب أكبر عشر رواتب للموظفين أرجو التكرم بكتابة الكود ولك جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 30 نوفمبر 2008 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2008 السلام عليكم ANK calculates the rank of a value in a group of values. Rows with equal values for the ranking criteria receive the same rank. Oracle then adds the number of tied rows to the tied rank to calculate the next rank. Therefore, the ranks may not be consecutive numbers. As an aggregate function, RANK calculates the rank of a hypothetical row identified by the arguments of the function with respect to a given sort specification. The arguments of the function must all evaluate to constant expressions within each aggregate group, because they identify a single row within each group. The constant argument expressions and the expressions in the ORDER BY clause of the aggregate match by position. Therefore, the number of arguments must be the same and their types must be compatible. As an analytic function, RANK computes the rank of each row returned from a query with respect to the other rows returned by the query, based on the values of the value_exprs in the order_by_clause. Syntax Aggregate Syntax: rank_aggregate vÄÄ,ÄÄÄ¿ >ÄÄRANKÄÄ(ÄÄexprÄÁÄ)ÄÄWITHIN GROUPÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> vÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ,ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ >ÄÄ(ORDER BYÄÄexprÄÂÄÄÄÄÄÄÄÄÂÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÁÄ)ÄÄÄÄÄÄÄÄÄÄÄÄÄ>< ÀÂÄDESCÂÄÙ ÀÄNULLSÄÂÄFIRSTÄÂÄÙ ÀÄASCÄÙ ÀÄLASTÄÄÙ Analytic Syntax: rank_analytic >ÄÄRANKÄÄ()ÄOVERÄÄ(ÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄorder_by_clause)ÄÄ>< ÀÄquery_partition_clauseÄÙ Aggregate Example The following example calculates the rank of a hypothetical employee in the sample table hr.employees with a salary of $15,500 and a commission of 5%: SELECT RANK(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees; Rank ---------- 105 Similarly, the following query returns the rank for a $15,500 salary among the employee salaries: SELECT RANK(15500) WITHIN GROUP (ORDER BY salary DESC) "Rank of 15500" FROM employees; Rank of 15500 -------------- 4 Analytic Example The following statement ranks the employees in the sample hr schema within each department based on their salary and commission. Identical salary values receive the same rank and cause nonconsecutive ranks. Compare this example with the example for DENSE_RANK. SELECT department_id, last_name, salary, commission_pct, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC, commission_pct) "Rank" FROM employees; DEPARTMENT_ID LAST_NAME SALARY COMMISSION_PCT Rank ------------- --------------- ---------- -------------- ---------- 10 Whalen 4400 1 20 Hartstein 13000 1 20 Goyal 6000 2 30 Raphaely 11000 1 30 Khoo 3100 2 30 Baida 2900 3 30 Tobias 2800 4 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 30 نوفمبر 2008 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2008 بالنسبة للكود SELECT max(sal) FROM emp WHERE sal <> (select max(sal) from emp);فانه يظهر اعلى ثاني راتب . ماذا لو اردت اعلى ثالث راتب او الرابع أو ......................الخ (غير ثانبت)اما بالنسبة للكود select sal , rownumfrom (select sal from emp order by sal desc) where rownum <=2 ; فانه يظهر الراتب الاول والثاني وانا ارديد الثاني فقط او الثالث او الرابع .............................الخيا ريت لو يشاركني بهذه الأسئلة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MMA بتاريخ: 3 ديسمبر 2008 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2008 -- جلب ثاني أكبر راتب. SELECT MAX(SAL) AS MAX_SAL FROM EMP WHERE SAL < (SELECT MAX(SAL) - 1 FROM EMP) -- جلب أول أكبر 10 رواتب-- SELECT EMPNO,SAL FROM (SELECT EMPNO,SAL FROM EMP ORDER BY SAL DESC) T WHERE ROWNUM <= 10 -- جلب آخر أصغر 10 رواتب-- SELECT EMPNO,SAL FROM (SELECT EMPNO,SAL FROM EMP ORDER BY SAL) T WHERE ROWNUM <= 10 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
asd202 بتاريخ: 3 ديسمبر 2008 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2008 تابع الرابط الاتىلو تريد فقط ثالث اكبر قيمةhttp://www.araboug.org/ib/index.php?showto...t=0#entry144314 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.