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

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

صورة
- - - - -

الاستعلام عن عمود ليس من ضمن ال Group


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

#1 -=|mOOdY|=-

-=|mOOdY|=-

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

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 10 January 2007 - 03:17 AM

كما عودناكم هناك دائما الجديد ,, ومع مودي مش هتقدر تغمض عينيك :huh: :huh: :o

هناك سؤال تقليدي من قبل الزبائن وهو
"اريد اظهار اقل راتب لكل دائرة" :rolleyes: والذي ببساطة يمكن حله كما يلي
SQL> select deptno, min(sal)
  2  from emp
  3  group by deptno;
ولكن بتعرفو الطلبات ما بتخلص :blink: بيرجع بيطلب كمان شغلة
"بدي اعرف رقم الموظف صاحب اقل راتب في كل دائرة" :) :) بيطلب كثير اشياء :o
فتقوم بتعديل الجملة لكي تصبح
SQL> select deptno, empno, min(sal)
  2  from emp
  3  group by deptno;
لكن للأسف يظهر معك الخطأ التالي
ORA-00979: not a GROUP BY expression
كنا زمان نحل هذه المشكلة باستعمال sub-select او انشاء inline-view
ولكن هناك طريقة ظريفة اكتشفتها بالامس منذ 9i وهي موجودة
SQL> select deptno, min(sal), min(empno) 
  2	KEEP ( dense_rank FIRST order by sal) empno
  3  from emp
  4  group by deptno
  5  /

	DEPTNO   MIN(SAL)	  EMPNO
---------- ---------- ----------
		10	   1300	   7934
		20		800	   7369
		30		950	   7900
ركزو على
KEEP ( dense_rank FIRST order by sal)

وعدم استعمالنا لا sub-select ولا inline-view


تحياتي :blink:




تم إضافة الكود في ملف نصي بالمرفقات
إدارة المنتدى

ملفات مرفقة

  • ملف مرفق  keep.txt   122بايت   505 عدد مرات التحميل

صورة

!!! كم أنت عبقري !!!


#2 الجنتل

الجنتل

    مشترك

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

تاريخ المشاركة 10 January 2007 - 11:29 PM

السلام عليكم
االاخ العزيز مودي والله روتانا سينما ولا شي جنبك
لو تشتغل الطريقة على الثمانية آي :)
وفقك الله
الجنتل
إن حـظـي كـدقـيـق فـوق شـوك نـثـروه***** ثـم قـالـوا لـحـفـاة يـوم ريـح اجـمـعـوه
صـعـب الأمر عـليهم قـال بعض اتركوه***** ان مـن اشـقـاه ربـي كـيـف انتم تسعدوه

#3 -=|mOOdY|=-

-=|mOOdY|=-

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

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 11 January 2007 - 01:45 AM

حبيبي يا جنتل والله ما بعرف اذا بتشتغل على ال 8 بس مااعتقد
انت جرب وردلنا خبر

صورة

!!! كم أنت عبقري !!!


#4 mw_wageeh

mw_wageeh

    عضو نشط

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

تاريخ المشاركة 11 January 2007 - 12:50 PM

السلام عليكم

شكر جدا جدا ياحلى والذ واطعم صديق قابلتة على المنتدى

دايما سابقنا بحاجاتك الطعمة دى

الامر keep

موجود بس على 9 اى فما فوفقة

عشان بس محدش يقول الجملة غلط ومشتغلتشى معانا

#5 -=|mOOdY|=-

-=|mOOdY|=-

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

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 11 January 2007 - 02:37 PM

شكرا اخوي mw_wageeh

بالنسبة للامر keep يمكنك استعماله بشكل عكسي كما يلي

KEEP ( dense_rank LAST order by sal)

تحياتي

صورة

!!! كم أنت عبقري !!!


#6 الجنتل

الجنتل

    مشترك

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

تاريخ المشاركة 11 January 2007 - 02:41 PM

السلام عليكم
:) :) :rolleyes: :blink:
للاسف ما اشتغل
ولكن اولا واخيرا يسلموااااااااااا مودي
وفقك الله
الجنتل
إن حـظـي كـدقـيـق فـوق شـوك نـثـروه***** ثـم قـالـوا لـحـفـاة يـوم ريـح اجـمـعـوه
صـعـب الأمر عـليهم قـال بعض اتركوه***** ان مـن اشـقـاه ربـي كـيـف انتم تسعدوه

#7 -=|mOOdY|=-

-=|mOOdY|=-

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

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 11 January 2007 - 03:02 PM

السلام عليكم





الامر keep

موجود بس على 9 اى فما فوفقة

عشان بس محدش يقول الجملة غلط ومشتغلتشى معانا




صورة

!!! كم أنت عبقري !!!


#8 wlahmad

wlahmad

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

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

تاريخ المشاركة 10 February 2007 - 10:30 PM

زادك المولى إيمانا وعلما وحرصا

#9 k_sabry

k_sabry

    عضو

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

تاريخ المشاركة 22 February 2007 - 12:34 AM

والله جربته على 10 جى ولكن مااشتغل
ولكن تسلم

لا ياشباب اسف والله اشتغل على 10 جى ولكنى كنت انا المخطئ بتنفيذه
بارك الله لك