الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في البحث الشجري وعمل الجداول

بدأه محترف سي في 24 يوليو 2013 · 6 رد · 623 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

المشكلة كالتالي :

انا عندي A   له ابنان c   و B     وكل واحد فيهم له ابناء انا عايز اعمل الشكل ده كداتا بيز  مع العلم انهم كلهم موظفين

 

A   موظف  ومدير علي  B   C

B  موظف ومدير علي Br    Bl

كذلك C  موظف  ومدير  Cr Cl

ازاي انفذ ده في الداتا بيز مع العلم اني لو دخلت رقم الاي دي بتاع A  يجيب عدد الموظفين اللي هو مدير عليهم  ولو دخلت اي دي بتاع c  يجيب عدد الموظفين اللي هو مدير عليهم وشكرا لكم

post-206740-0-02711100-1374692965_thumb.

#2

السلام عليكم ..

Oracle 10 recursion with manager ID and employee ID

انظر للإجابة التي عليها إشارة صح (check)  خضراء .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

جاري التطبيق شكرا لردك

#4

this select code to Oracle not to sql server

#5
KARIMSOFT كتب:

this select code to Oracle not to sql server

السلام عليكم ..

هذا صحيح ...

انا كنت اشير لبنية الجدول و ليس لعبارة الــ SELECT  .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#6

لو سمحتم ما هو الكود اللي يوازي الكود ده

؟؟؟

#7

السلام عليكم ..

إنشاء الجدول : 

CREATE TABLE EMPLOYEE (
    EMPLOYEE_ID INT PRIMARY KEY,
    MANAGER_ID INT,
    NAME VARCHAR(20),
    TITLE VARCHAR(20),
    FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE (EMPLOYEE_ID)
);

 بيانات تجريبية : 

INSERT INTO EMPLOYEE(EMPLOYEE_ID, NAME, TITLE) VALUES (1, 'Rob', 'CEO');
INSERT INTO EMPLOYEE VALUES (2, 1, 'Bob', 'Manager');
INSERT INTO EMPLOYEE VALUES (3, 2, 'Matilda', 'Secretary');
INSERT INTO EMPLOYEE VALUES (4, 1, 'Steve', 'Manager');
INSERT INTO EMPLOYEE VALUES (5, 4, 'John', 'Senior Worker');
INSERT INTO EMPLOYEE VALUES (6, 5, 'Paul', 'Junior Worker');
INSERT INTO EMPLOYEE VALUES (7, 4, 'Anny', 'Senior Worker');

 مدراء المستوى الأول : 

SELECT * FROM EMPLOYEE WHERE MANAGER_ID IS NULL

الموظفين الذين مديرهم هو Rob   : 

SELECT * FROM EMPLOYEE WHERE MANAGER_ID = 1

أما العدد : 


SELECT COUNT(*) FROM EMPLOYEE WHERE MANAGER_ID = 1

ربط الجدول مع نفسه يعطي اسم الموظف و اسم المدير إن كان موجود : 

SELECT E1.EMPLOYEE_ID , E1.NAME , E2.EMPLOYEE_ID AS MANAGER_ID , E2.NAME AS MANAGER_NAME 
FROM EMPLOYEE E1 LEFT OUTER JOIN  EMPLOYEE E2 ON E1.MANAGER_ID  = E2.EMPLOYEE_ID

لو اردت عرض النتائج كشجرة :

الشجرة والعناصر الفرعية منها

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 26 يوليو 2013 في 14:35

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…