• 0
Guest زهرة الزنبق

ربط جدولين في قاعدة بيانات

سؤال

اريد عمل جدول يحتوي على حقول:- كودالمخزن -اسم المخزن - امين المخزن - الاصناف الموجودة

وبالطبع الحقل الخاص بالاصناف الموجودة لابد ان يحتوي على اكثر من صنف ولذلك قمت بعمل جدولين واحد يسمى الرئيسي يحتوي على كود المخزن - اسم المخزن - امين المخزن

والاخر يسمى الاصناف يحتوي على كود المخزن - الاصناف الموجودة وقمت بعمل view يربط الجدولين وفي الview يظهر الجدول يحتوي على الحقول:- كودالمخزن -اسم المخزن - امين المخزن - الاصناف الموجودة ،ويكون للمخزن الواحد عدد صفوف بقدر عدد الاصناف

المشكلة هي اذا قمت بحذف جميع الاصناف في جدول الاصناف لا تظهر عندي اي بيانات في ال view خاصة ب كود المخزن - اسم المخزن - امين المخزن

وانا اريد اظهار بيانات الحقول كود المخزن - اسم المخزن - امين المخزن حتى لو لم توجد اصناف

والكود المستخدم في الview هو

SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM dbo.info2 CROSS JOIN

dbo.types

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

14 إجابة على هذا السؤال .

  • 0

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

بدلا من استخدام cross join يتم استخدام left outer join

SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID

مع العلم بأنك لست فى حاجة لهذا الكود طالما المطوب استعراض المخازن وأمنائها فقط، فيكفى الاستعلام من الجدول الأول فقط دون الربط

ولكن لو لابد من ذلك فالكود السابق يفى بالغرض بإذن الله

أدعو الله أن يكون مفيدا

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا جزيلا اخي الكود فعال ومفيد جدا ويربط الجدولين ليظهرا معا في  view1  كودالمخزن -اسم المخزن - امين المخزن - الاصناف الموجودة

وعند عدم وجود اصناف مدخلة يتم اظهار بيانات المخزن الاخرى وهو كودالمخزن -اسم المخزن - امين المخزن وتظهر خانة الاصناف الموجودة فارغة وهذا ما اريده

ولكني واليوم اردت اضافة جدولا ثالثا vans لهما يحوى حقل كود المخزن - سيارات النقل التابعة للمخزن name وذلك  باضافة الجدول الجديد للكود ولكن اعطانى خطأ

فكيف يكون ربط هذا الجدول الفرعي vans بالجدولين الجدول الرئيسيinfo2 والجدول الفرعي الاخرtypes

ولك جزيل الشكر اخي الكريم

تم تعديل بواسطه زهرة الزنبق
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أرجو الإفادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ولكني واليوم اردت اضافة جدولا ثالثا vans لهما يحوى حقل كود المخزن - سيارات النقل التابعة للمخزن name وذلك باضافة الجدول الجديد للكود ولكن اعطانى خطأ

فكيف يكون ربط هذا الجدول الفرعي vans بالجدولين الجدول الرئيسيinfo2 والجدول الفرعي الاخرtypes

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

ربط الجدول الثالث أو الرابع أو أى عدد ... يتم بنفس الطريقة أى...

بعد الانتهاء من ربط الجدولين الأولين يتم إضافة جملة الربط مع الجدول الثالث بحيث نخنار عمود من هذا الجدول الثالث وربطه بعمود موجود بأحد الجدولين السابقين (على حسب تصميم قواعد البيانات عندك) وبعد الانتهاء

يتم إضافة جملة الربط مع الجدول الرابع وهكذا...


SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM
dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID
left outer join dbo.vans on dbo.Types.ID = dbo.Van.Type_ID

فى الجملة السابقة اعتبرت أن الجدول الثالث vans مرتبط بالجدول Types لذلك كان شرط الربط هو on dbo.Types.ID = dbo.Van.Type_ID

أما لو كان مرتبطاً مع الجدول info ستكون الجملة on dbo.Info.ID = dbo.Van.Info_ID

8

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

ربط الجدول الثالث أو الرابع أو أى عدد ... يتم بنفس الطريقة أى...

بعد الانتهاء من ربط الجدولين الأولين يتم إضافة جملة الربط مع الجدول الثالث بحيث نخنار عمود من هذا الجدول الثالث وربطه بعمود موجود بأحد الجدولين السابقين (على حسب تصميم قواعد البيانات عندك) وبعد الانتهاء

يتم إضافة جملة الربط مع الجدول الرابع وهكذا...


SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM
dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID
left outer join dbo.vans on dbo.Types.ID = dbo.Van.Type_ID

فى الجملة السابقة اعتبرت أن الجدول الثالث vans مرتبط بالجدول Types لذلك كان شرط الربط هو on dbo.Types.ID = dbo.Van.Type_ID

أما لو كان مرتبطاً مع الجدول info ستكون الجملة on dbo.Info.ID = dbo.Van.Info_ID

 

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

ربط الجدول الثالث أو الرابع أو أى عدد ... يتم بنفس الطريقة أى...

بعد الانتهاء من ربط الجدولين الأولين يتم إضافة جملة الربط مع الجدول الثالث بحيث نخنار عمود من هذا الجدول الثالث وربطه بعمود موجود بأحد الجدولين السابقين (على حسب تصميم قواعد البيانات عندك) وبعد الانتهاء

يتم إضافة جملة الربط مع الجدول الرابع وهكذا...


SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM
dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID
left outer join dbo.vans on dbo.Types.ID = dbo.Van.Type_ID

فى الجملة السابقة اعتبرت أن الجدول الثالث vans مرتبط بالجدول Types لذلك كان شرط الربط هو on dbo.Types.ID = dbo.Van.Type_ID

أما لو كان مرتبطاً مع الجدول info ستكون الجملة on dbo.Info.ID = dbo.Van.Info_ID

 

السلام عليكم ورحمة الله وبركاته اشكر جميع القائمين على المنتدى لهذا التطوير الجيد في منتديات الفريق العربى للبرمجة ....كلل الله جهودكم دائما بالنجاح  وجزاكم كل الخير على حسن العمل
 
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

ربط الجدول الثالث أو الرابع أو أى عدد ... يتم بنفس الطريقة أى...

بعد الانتهاء من ربط الجدولين الأولين يتم إضافة جملة الربط مع الجدول الثالث بحيث نخنار عمود من هذا الجدول الثالث وربطه بعمود موجود بأحد الجدولين السابقين (على حسب تصميم قواعد البيانات عندك) وبعد الانتهاء

يتم إضافة جملة الربط مع الجدول الرابع وهكذا...


SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM
dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID
left outer join dbo.vans on dbo.Types.ID = dbo.Van.Type_ID

فى الجملة السابقة اعتبرت أن الجدول الثالث vans مرتبط بالجدول Types لذلك كان شرط الربط هو on dbo.Types.ID = dbo.Van.Type_ID

أما لو كان مرتبطاً مع الجدول info ستكون الجملة on dbo.Info.ID = dbo.Van.Info_ID

 

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

ربط الجدول الثالث أو الرابع أو أى عدد ... يتم بنفس الطريقة أى...

بعد الانتهاء من ربط الجدولين الأولين يتم إضافة جملة الربط مع الجدول الثالث بحيث نخنار عمود من هذا الجدول الثالث وربطه بعمود موجود بأحد الجدولين السابقين (على حسب تصميم قواعد البيانات عندك) وبعد الانتهاء

يتم إضافة جملة الربط مع الجدول الرابع وهكذا...


SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM
dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID
left outer join dbo.vans on dbo.Types.ID = dbo.Van.Type_ID

فى الجملة السابقة اعتبرت أن الجدول الثالث vans مرتبط بالجدول Types لذلك كان شرط الربط هو on dbo.Types.ID = dbo.Van.Type_ID

أما لو كان مرتبطاً مع الجدول info ستكون الجملة on dbo.Info.ID = dbo.Van.Info_ID

 

السلام عليكم ورحمة الله وبركاته اشكر جميع القائمين على المنتدى لهذا التطوير الجيد في منتديات الفريق العربى للبرمجة ....كلل الله جهودكم دائما بالنجاح  وجزاكم كل الخير على حسن العمل
 

 

اخي الكريم الكود فعال ولكن يوجد لدي مشكلة وهي انه طبيعي عند ادخال عربتان للمخزن  مثلا  و 10 اصناف يتكرر كل صنف 2 مرة بنفس عدد العربات  وتتكرر كل عربة 10 مرات اي بنفس عدد صفوف الاصناف  ويتكرر اسم المخزن كود المخزن اسم امين المخزن 20  مرة 

وانا  استخدم هذا الview

SELECT dbo.info2.id, dbo.info2.name, dbo.info2.emp_name, dbo.types.names FROM

dbo.info2 left outer join dbo.types on dbo.info2.id = dbo.types.Infro_ID

left outer join dbo.vans on dbo.info2.ID = dbo.Van.Type_ID

ليظهر في تقرير

واقوم بوضع  id,name,emp_name فى page header الخاصة بالتقرير  حتى لا تظهر متكررة واضع types,vansفى ال details الخاصة بالتقرير لتظهر جميع الاصناف وجميع العربات ولكن في الdetails يظهر كل صنف متكرر مرتان  وتظهر كل عربة متكررة 10 مرات فما هو التعديل الذي يمكنني ادخاله على التقرير حتى يظهر في details التقرير  10 اصناف فقط لا يتكرر كل صنف مرتان وتظهر عربتان فقط لا تتكر كل عربة 10 مرات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الافادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الافادة والتوضيح اذا كان شرح المشكلة غير واضح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

في التقرير بشكل عام يوجد مايسمى group  اي يتم اضافة قسم على التقرير بالاضافة الى قسم التفاصيل Details

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد اضفت جروب خاصة بالاصناف واخرى خاصة بالعربات ولكن لم يجدي الامر

لان الجروب تصنف كل صنف على حدةويندرج تحت كل صنف العربتان وهذا ما لا اريده انا اريد فقط عدم تكرار الاصناف وعدم تكرار العربات

سواءعن طريق ال database وتغيير في الكود او عن طريق الreport

ارجو الافادة

تم تعديل بواسطه زهرة الزنبق
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الرد والافادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الرد والافادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الافادة اذا كان شرح المشكلة غير واضح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو الافادة اذا كان شرح المشكلة غير واضح لتوضيحها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .