بتاريخ: 8 مارس 201411 سنة comment_247544 السلام عليكم ===================== الموضوع باختصار اريد ان اعمل كود سكول ليعرض التالي ... مثلا اسم الاداره ورقمها في الاول واسفلهم ارقام واسماء الموظفين فيها ومرتباتهم ومجموعهم اسفلهم الاداره 10 الاسم ادراه المشتريات "مثلا" رقم الموظف اسم الموظف المرتب 1 محمد 100 2 احمد 200 المجموع 300 وهكذا علي باقي الادارت شكرا تقديم بلاغ
بتاريخ: 9 مارس 201411 سنة comment_247581 اذا كنت ستضع هذا الإستعلام في شاشة فسوف تحتاج الي بلوكين فليكن :الأول : 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; تقديم بلاغ
بتاريخ: 9 مارس 201411 سنة comment_247582 وأما بالنسبة لي حقل المجموع تقدرتعمل حقل واحد وتخلي الخاصية summary function وتختار sum وتخار البلوك والحقل تقديم بلاغ
بتاريخ: 9 مارس 201411 سنة comment_247583 اما اذا كان الاستعلام لوضعه في تقرير فشكل الاستعلام حيختلف شوية تقديم بلاغ
بتاريخ: 9 مارس 201411 سنة كاتب الموضوع comment_247585 شكرا علي اهتمامك بالموضوع اخي ================================= لكن انا مببتدئ في تعلم الاوركل الى حد ما فموضوع التريجر او البلوك الي الان لم اصله لو امكن انه اعرض مثلا كلا اداره برقمها وكل موظفيها ومرتباتهم بطريقه اقرب من التى قلتها تقديم بلاغ
بتاريخ: 9 مارس 201411 سنة comment_247598 هو الموضوع ده تقريبا صعب تطبيقة فى بيئة 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; تم تعديل 10 مارس 201411 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 10 مارس 201411 سنة كاتب الموضوع comment_247629 تمام اخي الكريم وبارك الله فيك ومشكور علي متابعتك للموضوع ==================== لكن سؤال اخر لو عاوز اعمل احصاء او عد للعدد الموظفين في كل اداره وتكون علي الشكل هذا it_ptrog st_clrek others في شكل صف واحد وليس عمود ** علمت احصاء للعدد بكل اداره علي حدي ولكن لم استطيع تقيسمهم بالشكل المطلوب تقديم بلاغ
بتاريخ: 10 مارس 201411 سنة comment_247657 بص هى ممكن تتعمل لكل وظيفة على حدى يعنى لو عاوز يبقى فى سطر واحد برضه انا عملته عن طريق ال 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; تقديم بلاغ
بتاريخ: 10 مارس 201411 سنة كاتب الموضوع comment_247659 طيب مفيش طريقه افضل من هذه مثلا في بيئه السيكول لانه البي ال لم اتطرق اليه هل ممكن استخدام الـ SET OPERATOR تقديم بلاغ
بتاريخ: 10 مارس 201411 سنة comment_247660 ما اعرفش طريقة فى بيئة ال SQL تعرض النتيجة زى اللى انت عايزها و موضوع ال SET OPERATOR ليه استخدامات تانية تقديم بلاغ
بتاريخ: 10 مارس 201411 سنة كاتب الموضوع comment_247664 ع العموم شكرا علي متابعتك ------------------------------ لكن سؤال اخير ممكن شرح مبسط لفكره ال set op. الى الان مشوش فيها قليلا وفي استخدامها تقديم بلاغ
بتاريخ: 11 مارس 201411 سنة comment_247682 لعلى افيدك هو الشرح عن طريق برضه يوسر hr Union يظهر النتائج من الاستعلام الاول و الثانى مع حذف المكرر select employee_id from employeesunionselect employee_id from job_history يعرض كل الموظفيين سواء اللى تم تغيير وظائفهم واللى ما تمش تغيير وظائفهم Union All يظهر النتائج من الاستعلام الاول و الثانى بما فيها الصفوف المكررة select employee_id from employeesunion allselect employee_id from job_history ده بيظهر كل الموظفيين سواء اللى تم عليهم تغيير او لا مع عرض اللى تم عليهم تغيير مرتيين Intersect يظهر النتائج الموجودة فى كلا الاستعلاميين select employee_id from employeesintersectselect employee_id from job_history يعرض الموظفيين اللى تم عليهم تغيير فى وظائفهم و عادو مرة اخرى لوظائفهم القديمة Minus يظهر النتائج اللى فى الاستعلام الاول و غير موجود فى الاستعلام الثانى select employee_id from employeesminusselect employee_id from job_history يظهر الموظفيين اللى ما تمش عليهم تغيير تم تعديل 11 مارس 201411 سنة بواسطة AhmedOmar تقديم بلاغ
بتاريخ: 12 مارس 201411 سنة كاتب الموضوع comment_247734 الفرق بين استخدام ال case و ال decode تقديم بلاغ
بتاريخ: 13 مارس 201411 سنة comment_247779 http://www.oratable.com/decode-case-differences/ ادخل على الموقع ده ممكن يساعدك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.