الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ازاى باستخدام procedure احسب اكبر اداره فيها موظفين

Featured Replies

بتاريخ:

"]ازاى باستخدام procedure
احسب اكبر اداره فيها موظفين [/size]

بتاريخ:

السلام عليكم
ضع جملة السيليكت هذه في بروسيجر ...

Select Deptno, Count(Empno) No_Of_Employees
 From Emp
Group By Deptno
Having Count(Empno) = (Select Max(Count(Empno)) From Emp Group By Deptno)



تحياتي

بتاريخ:
  • كاتب الموضوع

انا عملت الكود ده

create or replace procedure emp_no is
begin Select Department_id, Count(Employee_id) No_Of_Employees
 From Employees Having Count(Employee_id) = (Select Max(Count(Employee_id)) From Employees) Group By (Department_id);
end;


بس طلع رسائل خطأ

Warning: Procedure created with compilation errors.
Errors for PROCEDURE EMP_NO:

LINE/COL 	ERROR
3/1 	PLS-00428: an INTO clause is expected in this SELECT statement

بتاريخ:

CREATE OR REPLACE PROCEDURE emp_no
IS
  v_count     NUMBER;
  v_dept_id   employees.department_id%TYPE;
BEGIN SELECT   department_id, COUNT (employee_id) no_of_employees
      INTO v_dept_id, v_count
      FROM employees HAVING COUNT (employee_id) = (SELECT MAX (COUNT (employee_id))
                                    FROM employees) GROUP BY department_id;
END;



كان لازم تعرف variables ترجع فيها رقم الادارة وعدد الموظفين

بتاريخ:
  • كاتب الموضوع

lمتشكر جدا يااخ سامح
بس انا عايز اعرف ازاى اتاكد من صحه الكود
يعنى
انا عايز اطبع رقم الاداره وعدد الموظفين اللى فيها
ازاى اعملها
مع جزيل الشكر

بتاريخ:

جرب هذا الكود كده

select Department_id From Employees where Department_id =
Select max(Count(EMPLOYEE_ID))
From Employees Group By (Department_id);

بتاريخ:
  • كاتب الموضوع
جرب هذا الكود كده
select Department_id From Employees where Department_id =
Select max(Count(EMPLOYEE_ID))
From Employees Group By (Department_id);





مش شغال
انا عايز حد يفهم اللى انا عايزه
الكود بتاع الاخ سامح شغل بس انا عايزه يطبع رقم الاداره اللى فيها كبر عدد موظفين وكمان يقولى العد كام
بتاريخ:

السلام عليكم ورحمة الله وبركاتة


declare 
x varchar2(300);
begin 
select max(count(department_id)) from departments 
into x

Group By departmen_id;
en

d;

تم تعديل بواسطة ahmedkhaled

بتاريخ:
  • كاتب الموضوع
السلام عليكم ورحمة الله وبركاتة


declare 
x varchar2(300);
begin 
select max(count(department_id)) from departments 
into x

Group By departmen_id;
en

d;



يااخى ما هذا الكود ده بيحسب عدد الادارات
انا اريد ان احسب اكبر اداره فيها اكبر عدد من الموظفين
وكمان اطبع اسم الاداره وعدد الموظفين

هل لا يوجد احد يستطي ايجاد هذا الكود ده الى الاخبراء
بتاريخ:

مشاركة الاخ pal oracle
تعطيك ما تريد وانا جربتها وشغال تمام

بتاريخ:

Create Or Replace Procedure Max
Is
vn	NUmber;
vn2   Number;
vv	Varchar2(20);
Begin
Select Deptno, Count(Empno)
 Into vn,vn2
 From Emp
Group By Deptno
Having Count(Empno) = (Select Max(Count(Empno))
					 From Emp
					 Group By Deptno);
If Vn>0 Then
Select Dname
 Into vv
 From Dept
 Where Deptno=vn;
End If;
Dbms_Output.Put_Line(vn||'   '||vn2||'   '||vv);
End;

بتاريخ:

اخي معليش انا لسى متبدأ لكن حسب ما فهمت انك تريد طباعة نتائج الكود اللي كتبه الاخ سامح

طيب اذا كنت تشتغل ببيئة SQL plus او iSQL plus جرب الكود التالي

اولا ً اجريت بعض التعديلات على الكود باضافة باراميترات من نوع آوت كي تستطيع اخراج النتائج الى خارج البروسيجر

 create or replace procedure max_dept
  (p_dname out employees.department_id%type,
p_count out number)
is
begin
  SELECT department_id, COUNT (employee_id)
  INTO p_dname , p_count
  FROM employees
  HAVING COUNT (employee_id) = (SELECT MAX (COUNT (employee_id))FROM employees GROUP BY department_id)
  GROUP BY department_id;
 end;
/




ثانيا باستخدام هذا البرنامج تستطيع طباعة النتائج

declare
 v_dname employees.department_id%type;
 v_count number;
begin
  max_dept(v_dname,v_count);
  dbms_output.put_line('Department NO. '||v_dname||chr(10)||'Employees number '||v_count);
end;
/



اهم شي لا تنسى تفعل امر الطباعة من برنامج الsql plus

options
Environment
serveroutput
اختار custom ثم on


جربت الكودين و نجحت العملية 100% و الصورة بالمرفقات توضح النتيجة


بالتوفيق

post-95210-1260482080_thumb.jpg

تم تعديل بواسطة habash1986

بتاريخ:
  • كاتب الموضوع
اخي معليش انا لسى متبدأ لكن حسب ما فهمت انك تريد طباعة نتائج الكود اللي كتبه الاخ سامح

طيب اذا كنت تشتغل ببيئة SQL plus او iSQL plus جرب الكود التالي

اولا ً اجريت بعض التعديلات على الكود باضافة باراميترات من نوع آوت كي تستطيع اخراج النتائج الى خارج البروسيجر

 create or replace procedure max_dept
  (p_dname out employees.department_id%type,
p_count out number)
is
begin
  SELECT department_id, COUNT (employee_id)
  INTO p_dname , p_count
  FROM employees
  HAVING COUNT (employee_id) = (SELECT MAX (COUNT (employee_id))FROM employees GROUP BY department_id)
  GROUP BY department_id;
 end;
/




ثانيا باستخدام هذا البرنامج تستطيع طباعة النتائج

declare
 v_dname employees.department_id%type;
 v_count number;
begin
  max_dept(v_dname,v_count);
  dbms_output.put_line('Department NO. '||v_dname||chr(10)||'Employees number '||v_count);
end;
/



اهم شي لا تنسى تفعل امر الطباعة من برنامج الsql plus

options
Environment
serveroutput
اختار custom ثم on


جربت الكودين و نجحت العملية 100% و الصورة بالمرفقات توضح النتيجة


بالتوفيق




اخى العزيز habash1986
هذا ما كنت اتكمناه بالظبط شكرا جزيلا والى الامام ولا تحرمنا من اجاباتك المتميزه
بتاريخ:

السلام على من اتبع الهدى

Select Department_id, Count(Employee_id) No_Of_Employees
From Employees
Group By Department_id
Having Count(Employee_id) = (Select Max(Count(Employee_id)) From Employees Group By Department_id)


جرب كد وانشالله شغال
الكود بتاع الاخ PALI.ORACLE

بتاريخ:

العفو اخي و ما عملنا غير الواجب و اي سؤال تاني انا حاضر

بس سؤال اسمحلي , لك الحرية في الاجابة عليه

لماذا كنت تريد هذا الكود ؟

بتاريخ:
  • كاتب الموضوع
العفو اخي و ما عملنا غير الواجب و اي سؤال تاني انا حاضر

بس سؤال اسمحلي , لك الحرية في الاجابة عليه

لماذا كنت تريد هذا الكود ؟



انا بصراحه كنت لسه مخلص كورس اوراكل
وبدور على شغل
ولى اصدقاء على النت مهتمين باوراكل
فواحد قالى الفكره امبارح وحاولت فيها وصلت لحد الكود والبروسيجر
ووقفت عند الطباعه
اللى حضرتك عملته لما استدعيت البرويسجر
بتاريخ:
العفو اخي و ما عملنا غير الواجب و اي سؤال تاني انا حاضر

بس سؤال اسمحلي , لك الحرية في الاجابة عليه

لماذا كنت تريد هذا الكود ؟



انا بصراحه كنت لسه مخلص كورس اوراكل
وبدور على شغل
ولى اصدقاء على النت مهتمين باوراكل
فواحد قالى الفكره امبارح وحاولت فيها وصلت لحد الكود والبروسيجر
ووقفت عند الطباعه
اللى حضرتك عملته لما استدعيت البرويسجر



بالتوفيق يا رب , و انا ايضا انهيت كورس الsql و ال plsql و بعد يومين ابدأ الفورمز ان شاء الله

شد حيلك , و عقبال الشغل ان شاء الله

و خلال هذه الفترة ( نصيحة اخوية ان شاء الله ) حاول تراجع تمارين الكتاب و تحلها , تدور بالنت على حلول لمشاكلك , و هذا ما افعله حاليا ً كي احسن نفسي في الاوراكل

فقط نصيحة اخوية احببت ان اهديها لأخ لي في المنتدى , و نحن هنا كلنا نبحث عن تطوير انفسنا في هذا المجال ...

بالتوفيق

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.