بتاريخ: 12 أكتوبر 201114 سنة comment_216479 لو سمحتوا انا طالبة حد يساعدني في حل السؤال ده بأفتراض ان عندنا 3 جداول (company1, company2, Department) المطلوب 1) Find employee name and department name and company name 2) Find total salary for each employee in all Companies and all departments تقديم بلاغ
بتاريخ: 12 أكتوبر 201114 سنة comment_216480 السلام عليكم ورحمه الله وبركاته... اول حاجه علشان تجيبى اسماء الموظفين لازم يكون فى جدول الموظفين وده مش موجودوبرده علشان نجيب اسماء الشركات محتاجين جدول الشركاتوبرده موضوع جدولين للشركات ده اصلا غلط من كل الاوجه لان الجدولين نسخه من بعض وده فى تصميم قواعد البيانات خطأ خسيملانه بيتعمل جدول للشركات وجدول للادارات ويتم ربطهم ببعضالمهم نبعت جدول الموظفين وجدول الشركات وانا ان شاء الله ابعتلك الحلبس انا ليه سؤال هو منين حضرتك جبتى السؤال ده لان السؤال انا شايفه خطأ من اوجه كتيره وربنا يوفقك ان شاء الله تقديم بلاغ
بتاريخ: 12 أكتوبر 201114 سنة كاتب الموضوع comment_216483 انا عارفة ان السؤال عجيب وغلط بس هو اتسألي في انترفيو طيب هو لو افترضنا ان فيه جدول للموظفين عبارة عن Emp_ID وال EMP_Name دي محلولةبس اسماء الشركات هما بس الشركتين Company1 و Company2 وكل واحدة ليها الجدول الخاص بيها تقديم بلاغ
بتاريخ: 12 أكتوبر 201114 سنة comment_216486 بإفتراض وجود جدول الموظفين ( فقط لسهوله التعامل مع اسم بدلا من ID ) Employee table data EMPID FNAME LNAME 1 MICHAEL POLAND2 JIM KENNEDY3 JAMES SMITH4 ADAM ACKERMAN5 MARTHA LEDERER6 MARIAH MANDEZ [/left] [left]--- 1----[/left] [left]SELECT 'Company1' CompanyName, D.Dept_name Dept_Name, EMPLOYEE.FNAME FROM Company1 C1 INNER JOIN Department D ON C1.Dept = D.Dept_id INNER JOIN EMPLOYEE ON C1.Emp_ID = EMPLOYEE.EMPID UNION SELECT 'Company2' , D.Dept_name Dept_Name, EMPLOYEE.FNAME FROM Company2 C2 INNER JOIN Department D ON C2.Dept = D.Dept_id INNER JOIN EMPLOYEE ON C2.Emp_ID = EMPLOYEE.EMPID -----------------[/left] [left]---2 ---- select e.FNAME , NVL(( select SUM(c1.SAL) FROM Company1 c1 where c1.Emp_ID=e.EMPID ),0) + NVL((select SUM(c2.SAL) FROM Company2 c2 where c2.Emp_ID=e.EMPID ),0) From EMPLOYEE e[/left] [left] تقديم بلاغ
بتاريخ: 12 أكتوبر 201114 سنة comment_216487 بإفتراض وجود جدول الموظفين ( فقط لسهوله التعامل مع اسم بدلا من ID ) Employee table data EMPID FNAME LNAME 1 MICHAEL POLAND2 JIM KENNEDY3 JAMES SMITH4 ADAM ACKERMAN5 MARTHA LEDERER6 MARIAH MANDEZ [/left] [left]--- 1----[/left] [left]SELECT 'Company1' CompanyName, D.Dept_name Dept_Name, EMPLOYEE.FNAME FROM Company1 C1 INNER JOIN Department D ON C1.Dept = D.Dept_id INNER JOIN EMPLOYEE ON C1.Emp_ID = EMPLOYEE.EMPID UNION SELECT 'Company2' , D.Dept_name Dept_Name, EMPLOYEE.FNAME FROM Company2 C2 INNER JOIN Department D ON C2.Dept = D.Dept_id INNER JOIN EMPLOYEE ON C2.Emp_ID = EMPLOYEE.EMPID -----------------[/left] [left]---2 ---- select e.FNAME , NVL(( select SUM(c1.SAL) FROM Company1 c1 where c1.Emp_ID=e.EMPID ),0) + NVL((select SUM(c2.SAL) FROM Company2 c2 where c2.Emp_ID=e.EMPID ),0) From EMPLOYEE e[/left] [left] تقديم بلاغ
بتاريخ: 13 أكتوبر 201114 سنة comment_216491 السلام عليكم ورحمه الله وبركاته...طالما هو سؤال اتسالك فى انترفيو ما تتعبيش نفسك وتحاولى تجاوبى عليه دلوقتى واطمنك ان اللى سالك السؤال مش فاهم هو بيسال فى ايه اصلاوربنا يوفقك لشركه بس تكون كويسه ان شاء الله بيعرفوا همه بيعملوا ايهوانا مش حاحاول حته احله لانه سؤال مش منطقى اصلا باى حال من الاحوال تقديم بلاغ
بتاريخ: 13 أكتوبر 201114 سنة comment_216504 السلام عليكم ورحمه الله وبركاته...طالما هو سؤال اتسالك فى انترفيو ما تتعبيش نفسك وتحاولى تجاوبى عليه دلوقتى واطمنك ان اللى سالك السؤال مش فاهم هو بيسال فى ايه اصلاوربنا يوفقك لشركه بس تكون كويسه ان شاء الله بيعرفوا همه بيعملوا ايهوانا مش حاحاول حته احله لانه سؤال مش منطقى اصلا باى حال من الاحوال المهندس العزيزبالنسبه للسؤال حضرتك بتقول انه غلط - انا الحقيقه مش فاهم وجه الخطأ فى السؤاللو عشان تكرار جدول للشركات - فده لا يجعل السؤال خطأ - لان هناك اتجاهات عديدة لتصميم جداول قواعد البياناتو طبعا الطريقة السائدة لمدة طويلة كانت عدم تكرار بيانات و ال Normalization و هو يعنى عدم تكرار البيانات الى الحد النهائى - و يعطى ميزة صغر مساحة الداتا بيز و هو العامل الاهم فى فترة كانت ال Storage غالية جدا فيهالكن بطبيعة عملى على مختلف ال ERP'sمنها أوراكل و مايكروسوفت RMS and GPالشركات الكبيرة دى عملت تقنيات أخرى تقوم على ال DENORMALIZATIONيعنى السماح بوجود بيانات مكررة او غير مربوطه فى جدول واحد -- و هو يأخذ مساحة أكبر و لكنه يسهل العمل على استخراج البيانات بصورة قد تكون اسرع و اكثر تصنيفا لا أحب أن أطيل و لكنى من مؤيدى ال Normalization مثلك تمام و لكن الغرض من السؤال هو عمل جملة ال Select المطلوبه و ذلك بافتراض انك فى شركة بها تصميم قاعدة البيانات هو كما فى السؤال و ده وارد جدا جدا سواء انه كان صحيح او غير مصمم جيدا و الحقيقة الجمل المطلوبه فيه فكرة كويسه فى استخدامIn-line queryGroup byUnionNVL Functionو قد قمت بافتراض الاجابه عن الاسألة فى مداخله سابقة و اتشرف بتعليقكم الكريم لنستفيد جميعا شكرا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.