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

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

صورة
- - - - -

من عنده حل لمشكلة Group By


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

#1 RTL

RTL

    عضو

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

تاريخ المشاركة 28 March 2010 - 11:58 AM

السلام عليكم جميعا

انا استخدم اوراكل 10G
وعملت بروسيجر تحوي GROUP BY
قام ببناء البروسيجر بشكل صحيح
لكن عندما استدعيها واناديها
يظهر لي اخطاء تخص الجروب باي

وسمعت ان النسخة التي اعمل عليها لاتدعم الجروب باي
فهل هذا صحيح؟؟؟؟؟؟؟؟؟؟؟؟
ومالحل

#2 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 March 2010 - 12:02 PM

اخي الكريم

ارفق البروسيجر ليتمكن الجميع من مساعدتك

#3 RTL

RTL

    عضو

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

تاريخ المشاركة 28 March 2010 - 07:51 PM

شكرا اخي

انا اريد امثلة لبروسيجر تستخدم الجروب باي وتستقبل برامتر

#4 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 March 2010 - 08:33 PM

CREATE OR REPLACE PROCEDURE proc1
AS v_ename CHAR(20);
v_salary NUMBER(10,0);
BEGIN SELECT ename,
salary
INTO v_ename, v_salary
FROM emp WHERE salary > 100000
GROUP BY deptno;
END;


#5 RTL

RTL

    عضو

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

تاريخ المشاركة 28 March 2010 - 10:18 PM

شكرا بارك الله فيك
يااخي
طيب ممكن اذا في امكان تعرض لي وحدة فيها CURSOR
وتستقبل برامتر
واتمنى اشوف االاوتبوت لها
واسفة لكثرة الاسئلة
شكرا لك

#6 abdou1984

abdou1984

    عضو نشط

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

تاريخ المشاركة 28 March 2010 - 11:00 PM

السلام عليكم
-----------------------------
حتى يتم استخدام Group by لابد من استخدام Aggregate functions
مثل sum , max , min , count ...........
مثال
------------------------------------
FOR REC IN ( SELECT DEPTNO,MAX(SALARY)
FROM EMP WHERE SALARY > 100000
GROUP BY DEPTNO
)
LOOP
--- STATMENT
END LOOP;


#7 RTL

RTL

    عضو

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

تاريخ المشاركة 29 March 2010 - 12:52 AM

شكرا لك يااخي عندي علم بهذا الامر انا مستخدمه count
لكن المشكلة ان الاوراكل يقبل البروسيجر وينشئها
وعندما اقوم بندائها يظهر لي خطأ عند الجروب باي
وبحثت عن سببه ولكن دون جدوى

#8 RTL

RTL

    عضو

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

تاريخ المشاركة 30 March 2010 - 05:57 PM

شكرا للجميع تم حل المشكلة بسلاام

#9 mrmfarhan

mrmfarhan

    عضو

  • الأعضــاء
  • 5 مشاركة
  • الاسم الأول:مهند
  • اسم العائلة:فرحان
  • البـلـد: Country Flag
  • الاهتمامات:oracle forms/report and dba

تاريخ المشاركة 31 March 2010 - 12:18 AM

ال group by يجب ان تكون مع group function like sum ,count,...etc... ويجب ان يكون كل كولم موجود بال select ومو موجود بال function group يجيب ان يكون بال group by

ex:


select max(salary),emp_name,emp_no
from employee
group by emp_name,emp_no

واذا استخدمت ال function group بال conditions يجيب ان يكون هناك having




شكرا لكم