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

بتاريخ:

لو سمحتوا انا طالبة حد يساعدني في حل السؤال ده

بأفتراض ان عندنا 3 جداول (company1, company2, Department)

551867905.png

793365673.png

808659351.png

المطلوب

1) Find employee name and department name and company name

2) Find total salary for each employee in all Companies and all departments

بتاريخ:

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

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

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

انا عارفة ان السؤال عجيب وغلط بس هو اتسألي في انترفيو

طيب هو لو افترضنا ان فيه جدول للموظفين عبارة عن Emp_ID وال EMP_Name دي محلولة
بس اسماء الشركات هما بس الشركتين Company1 و Company2 وكل واحدة ليها الجدول الخاص بيها

بتاريخ:

بإفتراض وجود جدول الموظفين ( فقط لسهوله التعامل مع اسم بدلا من ID )

Employee table data

EMPID FNAME LNAME


1 MICHAEL POLAND
2 JIM KENNEDY
3 JAMES SMITH
4 ADAM ACKERMAN
5 MARTHA LEDERER
6 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]

بتاريخ:

بإفتراض وجود جدول الموظفين ( فقط لسهوله التعامل مع اسم بدلا من ID )

Employee table data

EMPID FNAME LNAME


1 MICHAEL POLAND
2 JIM KENNEDY
3 JAMES SMITH
4 ADAM ACKERMAN
5 MARTHA LEDERER
6 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]

بتاريخ:

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

بتاريخ:

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


المهندس العزيز
بالنسبه للسؤال حضرتك بتقول انه غلط - انا الحقيقه مش فاهم وجه الخطأ فى السؤال
لو عشان تكرار جدول للشركات - فده لا يجعل السؤال خطأ - لان هناك اتجاهات عديدة لتصميم جداول قواعد البيانات
و طبعا الطريقة السائدة لمدة طويلة كانت عدم تكرار بيانات و ال Normalization و هو يعنى عدم تكرار البيانات الى الحد النهائى - و يعطى ميزة صغر مساحة الداتا بيز و هو العامل الاهم فى فترة كانت ال Storage غالية جدا فيها
لكن بطبيعة عملى على مختلف ال ERP's
منها أوراكل و مايكروسوفت RMS and GP
الشركات الكبيرة دى عملت تقنيات أخرى تقوم على ال DENORMALIZATION
يعنى السماح بوجود بيانات مكررة او غير مربوطه فى جدول واحد -- و هو يأخذ مساحة أكبر و لكنه يسهل العمل على استخراج البيانات بصورة قد تكون اسرع و اكثر تصنيفا

لا أحب أن أطيل و لكنى من مؤيدى ال Normalization مثلك تمام

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

و الحقيقة الجمل المطلوبه فيه فكرة كويسه فى استخدام
In-line query
Group by
Union
NVL Function
و قد قمت بافتراض الاجابه عن الاسألة فى مداخله سابقة

و اتشرف بتعليقكم الكريم لنستفيد جميعا

شكرا

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

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

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

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

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

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.