الانتقال إلى المحتوى
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.

مساعده في كود

Featured Replies

بتاريخ:

 

السلام عليكم

=====================

الموضوع باختصار  اريد ان اعمل كود سكول  ليعرض التالي ... مثلا اسم الاداره ورقمها في الاول

واسفلهم ارقام واسماء الموظفين فيها ومرتباتهم ومجموعهم اسفلهم 

 

الاداره  10   الاسم  ادراه المشتريات  "مثلا"

 

رقم الموظف        اسم الموظف        المرتب

1                           محمد          100

2                            احمد         200

                              المجموع    300

 

وهكذا علي باقي الادارت 

شكرا

 

بتاريخ:

اذا كنت ستضع هذا الإستعلام في شاشة فسوف تحتاج الي بلوكين فليكن :
الأول : emp_h
الثاني : emp_d
* ضع في البلوك الأول الادارة واسم الادارة
* إجعل البلوك الثاني تابلورر وضع فيه حقل رقم الموظف والاسم والمرتب

وضع في تريقر علي مستوي رقم الادارة key_next_item  التريقر التالي :
declare

cursor emp_info is

select emp_no,ename,salary

from employees

where

dept_no=:deptno;

begin

go_block('emp_d');

first_record;

for i in emp_info

loop

:emp_no:=i.emp_no;

:emp_name:=i.ename;

:emp_salary:=i.salary;

next_record;

end loop;

first_record;

end;

بتاريخ:

وأما بالنسبة لي حقل المجموع تقدرتعمل حقل واحد وتخلي الخاصية summary function وتختار sum  وتخار البلوك والحقل

بتاريخ:

اما اذا كان الاستعلام لوضعه في تقرير فشكل الاستعلام حيختلف شوية

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

 

شكرا علي اهتمامك بالموضوع اخي 

=================================

لكن انا مببتدئ في تعلم الاوركل الى حد ما

 

فموضوع التريجر او البلوك الي الان لم اصله

 

لو امكن انه اعرض مثلا كلا اداره برقمها وكل موظفيها ومرتباتهم بطريقه اقرب من التى قلتها

 

بتاريخ:

هو الموضوع ده تقريبا صعب تطبيقة فى بيئة sql

لكن ممكن نحاول نعمله عن طريق pl/sql

بالكود ده

set serveroutput on
declare
v varchar2(30);
id number:=10;
cursor c is select employee_id,first_name,salary from employees where department_id = id;
begin
select department_name into v from departments where department_id = id;
DBMS_OUTPUT.PUT_LINE('dept no '||id||' Name '||v);
DBMS_OUTPUT.PUT_LINE('empno '||'ename '||'sal');
for i in c loop
DBMS_OUTPUT.PUT_LINE(I.EMPLOYEE_ID||'    '||I.FIRST_NAME||' '||I.SALARY);
END LOOP;
end;

تم تعديل بواسطة Ahmad.Hasan

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

 

تمام اخي الكريم وبارك الله فيك ومشكور علي متابعتك للموضوع

====================

لكن سؤال اخر لو عاوز اعمل احصاء او عد للعدد الموظفين في كل اداره وتكون علي الشكل هذا

 

it_ptrog            st_clrek     others

 

في شكل صف واحد وليس عمود

 

** علمت احصاء للعدد بكل اداره علي حدي ولكن لم استطيع تقيسمهم بالشكل المطلوب

 

بتاريخ:

بص هى ممكن تتعمل لكل وظيفة على حدى يعنى لو عاوز يبقى فى سطر واحد برضه انا عملته عن طريق ال pl
declare
count_1 number;
job_id_1 varchar2(30):='AC_ACCOUNT';
count_2 number;
job_id_2 varchar2(30):='ST_CLERK';
begin
select count(employee_id ) into count_1 from employees where job_id = job_id_1;
select count(employee_id) into count_2 from employees where job_id = job_id_2;
dbms_output.put_line(job_id_1||' '||count_1||' '||job_id_2||' '||count_2);
end;

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

طيب مفيش طريقه افضل من هذه مثلا في بيئه السيكول

لانه البي ال لم اتطرق اليه

 

هل ممكن استخدام الـ SET OPERATOR

بتاريخ:

 ما اعرفش طريقة فى بيئة ال SQL تعرض النتيجة زى اللى انت عايزها

و موضوع ال SET OPERATOR ليه استخدامات تانية

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

ع العموم شكرا علي متابعتك

------------------------------

لكن سؤال اخير ممكن شرح مبسط لفكره ال set op. الى الان مشوش فيها قليلا وفي استخدامها

بتاريخ:

لعلى افيدك هو الشرح عن طريق برضه يوسر hr

Union يظهر النتائج من الاستعلام الاول و الثانى مع حذف المكرر

select employee_id from employees
union
select employee_id from job_history

يعرض كل الموظفيين سواء اللى تم تغيير وظائفهم واللى ما تمش تغيير وظائفهم

 

Union All يظهر النتائج من الاستعلام الاول و الثانى بما فيها الصفوف المكررة

select employee_id from employees
union all
select employee_id from job_history

ده بيظهر كل الموظفيين سواء اللى تم عليهم تغيير او لا مع عرض اللى تم عليهم تغيير مرتيين

 

Intersect يظهر النتائج الموجودة فى كلا الاستعلاميين

select employee_id from employees
intersect
select employee_id from job_history

يعرض الموظفيين اللى تم عليهم تغيير فى وظائفهم و عادو مرة اخرى لوظائفهم القديمة

 

Minus يظهر النتائج اللى فى الاستعلام الاول و غير موجود فى الاستعلام الثانى

select employee_id from employees
minus
select employee_id from job_history

يظهر الموظفيين اللى ما تمش عليهم تغيير

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

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

الفرق بين استخدام  ال case   و ال  decode

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

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

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

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

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

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.