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

تنفيذ فكرة بأستخدام Union

Featured Replies

بتاريخ:

بسم الله الرحمن الرحيم


أخواني عندي مشكلة بسيطة وأتمنى مساعدتكم لي
هي تتعلق ب: Set Operator وبالتحديد جملة Union المشكلة تتلخص كما يلي:
اذا عندي الكود التالي :

select a,b
from tab1 union
select a,c
from tab2


طبعا النتيجة راح تكون عمودين , العمود الأول أسمه A والعمود الثاني أسمه B .
ويحتويان على مجموعه من السجلات غير المكررة و الموجودة في الجدولين . والشكل هذا يعطي مثال للنتيجة
a b
a1 b1
a1 c1
a2 b2
a2 c2
.................................... وهكذا


استفساري هو :
كيف أقدر اخلي النتيجة تظهر في ثلاثة اعمدة مع تجاهل تكرار العمود a يعني ابغى النتيجة تكون زي كذا :
a b c
a1 b1 c1
a2 b2 c2
............................................... وهكذا

أتمنى أنكم تكونو فهمتوني , أنا ابغى الحل بأستخدام Union
وانا شاكر لكم جدا تعاونكم

أخوكم
عدنان

بتاريخ:

select a , b , to_number(null) c
from table1
union
select a , to_number(null) b , c
from table2

بتاريخ:

أخي العزيز وضعنا to_number على افتراض ان النوع البياني للحقل number
فلو كان char نضع to_char
أرجو ان يكون هذا ما تقصد وان نكون قد بلغنا

بتاريخ:

الاخ الكريم
عملية استرجاع البيانات او الاستفسار عنها عن طريق UNION هي استفسار يتم اذا لم يجد في الجدول الاول يجب ان يجده في الجدول الثاني وهكذا مع ملاحظة تشابة اسماء الحقول ويمكن التغلب عليها كما يلي

select a S1,b S2
from tab1 union
select a S1, c S2
from tab2



في هذه الحالة يرجع البيانات في نفس اسم الحقل S1,S2

ولتفادي التكرار اكتب التالي

select DISTINCT a S1,b S2
from tab1 union
select DISTINCT a S1, c S2
from tab2



ولاظهار البيانات بالشكل

a b c
a1 b1 c1
a2 b2 c2


اكتب التالي
select a S1, b S2, to_number(null) c S3
from table1 union
select a S1, to_number(null) b S2, c S3
from table2

تم تعديل بواسطة Admin05

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

بسم الله الرحمن الرحيم


أخواني أشكر لكم ردودكم وسرعة تفاعلكم .
بالنسبة للحلول المقترحة , في الحقيقة ليست هي المطلوبة :wub:
في الحلول اللي اقترحتوها راح يتم تكرار السجل A وهي هذه المشكلة , اللهم انه في الحل اللي اقترحتوة راح يضيف عمود ثالث وراح يخلي قيمتة null
انا اللي ابغاه انه العمود الثالث C تتم أضافتة بس ما يكون null
ابغى قيمتة تاخذ القيمة الموجودة في السجل الثاني لنفس قيم A
عني عشان ما ألخبطكم النتيجة اللي انتو أقترحتوها حتكون زي كذا:
A B C
a1 b1 null
a1 null c1
a2 b2 null
a2 null c2
و الحل اللي أنا أدور علية هوه :
A B C
a1 b1 c1
a2 b2 c2

ومشكورين جدا على أهتمامكم بالموضوع


أخوكم
عدنان
O.C.P

بتاريخ:

الاخ الكريم
لاحظ التالي

select DISTINCT a S1,b S2
from tab1 union
select DISTINCT a S1, c S2
from tab2



DISTINCT تشيل التكرار تماما
اما بالنسبة للتكرار اللذي يحصل عندك لاختلاف اسماء الحقول بين الحقل الاول والثاني
ارجو ان تجرب التالي

select DISTINCT a S1, b S2, to_number(null)  S3
from table1 union
select DISTINCT a S1, to_number(null)  S2, c S3
from table2

تم تعديل بواسطة Admin05

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

الأخ Admin05
شكرا لتواصلك ...
يا أخي أنا جربت الكود اللي كتبتة , أما بخصوص جملة Distinct فكلامك مضبوط راح تشيل التكرار ,بس عشان أطمنك أنا العمود a هو Primary Key في الجدول يعني ما في داعي لجملة Distinvt
ما أدري بس أحس انه انا ما قدرت أوصلكم اللي أبغاة
انا مو هدفي ترى أني ألغي التكرار , لا أبدا
انا هدفي أني اخلي العمود الثاني في جملة الSelect الثانية يظهر كعمود ثالث في الجداول النتيجة
انتم تعرفون أنة النتيجة راح تكون عبارة عن عمودين بس وبنفس مسمى أعمدة الSelect الأولى .


وشكرا مرة أخرى لك وللأخ connector أحس انة يشتغل ورى الكواليس :wub:

بتاريخ:

SELECT t1.A,t1.B,t2.C FROM
(
select a , b , rownum row_id1 from table1
)T1,
(
select a , c , rownum row_id2 from table2
)T2
where
row_id1=row_id2;

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

بسم الله الرحمن الرحيم



أخ connector
أنا من البداية أوضحت أني أبغى الحل بأستخدام جملة Union وهذا هو مربط الفرس
عموما شكرا لمحاولاتك


أنا قاعد أحاول و أنشاء الله أوصل للحل .


أخوكم
عدنان

بتاريخ:

أخي الكريم وضح التالي :
1- هل حقل a في الجدول الثاني primary key .

وإن شاء الله أستطيع أن أساعدك .
وحاول تجرب group by , with , outer join with Union
وبالتوفيق ..

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

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

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

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

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

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.