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

يختار كل الموظفين لكل قسم من غير ما يكرر كتابه القسم مرتين


shode

Recommended Posts

اعملها master-detail

master: بتدخل رقم القسم وبيكون مربوط مع ال detail عن طريق رقم القسم نفسه وباقي محتويات الجدول الخخاص فيه

رابط هذا التعليق
شارك

اعملها master-detail

master: بتدخل رقم القسم وبيكون مربوط مع ال detail عن طريق رقم القسم نفسه وباقي محتويات الجدول الخخاص فيه



ممكن توضيح اكتر مع مثال وشكرا
رابط هذا التعليق
شارك

توضيحا لفكرة اخي العزيز هو يقصد ان تقوم بعمل بلوك يحتوي رقم الدائرة واسمها مثلا
وبلوك اخر يحتوي اسماء الموظفين ويكون طبعا tabular
ابحث عن شيء اسمه lookup table

رابط هذا التعليق
شارك

السلام عليكم...
بتمنى من الأخ يلي حكى عن LookUp Table يحط مثال إذا حابب يقدم إفادة...
أنا لقيت حل مبدئي .. و عم حاول دور على حل أكثر منطقية...
هذا حلي:

column no1 noprint
column no2 noprint
select dname,deptno no1,1 no2 from dept union
select ename,deptno,2  from emp e
union
select '---------------',deptno,3 from emp order by 2,3
/

تم تعديل بواسطة TROYMAN
رابط هذا التعليق
شارك

انا افهم حضرتك يعنى هما جدولين many to manyفمفكوكين فى جدول يربط بينهم لذ لك لما نحب نجيب داتا من الاتني لازم نجيبهم بالربط اللى فى الجدول التالت هو كود حضرتك يحقق الغرض بس ازاى يرجع من 3 جداول مربوطين ببعض واحد فيه الفكه بتاع الاتنين
ياريت تكون فاهمنى

رابط هذا التعليق
شارك

السلام عليكم...
تفضل أخي.. بس إن شاء الله يكون هذا الجواب المناسب.

1* create table employee (Id number primary key,Name varchar2(40))
SQL> /

Table created.



SQL> create table department(Id number primary key,Name varchar2(40));

Table created.



1  create table Emp_Dept (emp_ID number references employee(Id),
 2* dept_ID number references department(Id),primary key(Emp_Id,dept_Id))
SQL> /

Table created.



1* insert into department (select deptno,dname from dept) SQL> /

4 rows created.

SQL> insert into employee (select empno,ename from emp where job is not null);

14 rows created.

SQL> commit;

Commit complete.



SQL> insert into emp_dept values(7788,10);

1 row created.

SQL> insert into emp_dept values(7788,20);

1 row created.

SQL> insert into emp_dept values(7839,30);

1 row created.

SQL> insert into emp_dept values(7839,20);

1 row created.

SQL> insert into emp_dept values(7566,10);

1 row created.

SQL>  insert into emp_dept values(7902,10);

1 row created.

SQL>  insert into emp_dept values(7902,30);

1 row created.

SQL> commit
 2  ;

Commit complete.



SQL> select * from emp_dept; EMP_ID    DEPT_ID
---------- ----------
     7566         10
     7788         10
     7788         20
     7839         20
     7839         30
     7902         10
     7902         30

7 rows selected.



SQL> column no noprint
SQL> select Id,dept_id no from department join emp_dept on (id=dept_id)
 2  intersect
 3  select dept_id,id no from department join emp_dept on (id=dept_id)
 4  union all
 5  select emp_id,dept_id no from emp_dept 6  order by 2,1
 7  /

       ID
----------
       10
     7566
     7788
     7902
       20
     7788
     7839
       30
     7839
     7902

10 rows selected.



1  select name,Id no1,dept_id no2 from department join emp_dept on (id=dept_id)
 2  intersect
 3  select name,dept_id,id from department join emp_dept on (id=dept_id)
 4  union all
 5  select null,emp_id,dept_id from emp_dept 6* order by 3,2
SQL> /

NAME                                            NO1
---------------------------------------- ----------
ACCOUNTING                                       10
                                              7566
                                              7788
                                              7902
RESEARCH                                         20
                                              7788
                                              7839
SALES                                            30
                                              7839
                                              7902

10 rows selected.




وممكن كمان تحطها بهل شكل...

1   select name Department,' ' Employess,dept_id no2 from department join emp_dept on (id=dept_id)
 2   intersect
 3   select name,' ',id from department join emp_dept on (id=dept_id)
 4   union all
 5   select null,to_char(emp_id),dept_id from emp_dept 6*  order by 3,2
SQL> /

DEPARTMENT                               EMPLOYESS
---------------------------------------- ----------------------------------------
ACCOUNTING
فراغ                                  7566
                                        7788
                                        7902
RESEARCH
فراغ                                  7788
                                        7839
SALES
فراغ                                  7839
                                        7902

10 rows selected.

تم تعديل بواسطة TROYMAN
رابط هذا التعليق
شارك

انا متشكرة جداااااااااااااااااااااااااااااا وجزاك الله كل وربنا يكرمك قوىىىىىىىىىىىىىىىى
وربنا يارب يوفقك فى شغلك
وانا اسفه ع تعبك معايا وربنا يجازيك كل خير

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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