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

طريقه لانشاء matrix

Featured Replies

بتاريخ:

السلام عليكم...
عندي سؤال في كتاب خاص بالداتا بيسيس و هو كالتالي:

افرض أنه يوجد لديك جدول كالتالي:

Name MonthSalary Salary
----------------------------------------------------------------------------
5000 Luis JAN
7500 Luis FEB
7700 Luis MAR
5000 Jose JAN
5010 Jose FEB
4000 Manuel MAR

و نريد الـ output كالتالي:
name JAN FEB MAR
-------------------------------
LUIS 5000 7500 7700
JOSE 5000 5010 0
MANUEL 0 0 4000
و شكراً مقدماً

بتاريخ:

ارجوا الايضاح الاخ LuisFigo
ففي جدول ال output اري اسماء لاشهر في اسم العمود والتي هي اساساً عباره عن مدخلات في الجدول الاول في column ال monthsalary
من فضلك وضح اكثر

بتاريخ:
  • كاتب الموضوع
ارجوا الايضاح الاخ    LuisFigo
ففي جدول ال output  اري اسماء لاشهر في اسم العمود  والتي هي اساساً عباره عن مدخلات في الجدول الاول في column  ال monthsalary
من فضلك وضح اكثر

49473[/snapback]



نعم هو كما فهمت أنت
السؤال كالتالي
عندنا الجدول التالي
212-1128766377.jpg
و نريد المخرجات كالتالي
212-1128766614.jpg
بتاريخ:

يمكنك استخدام هذه الطريقه لانشاء matrix

select name , sum(decode (mon_sal, 'jan' , salary )) "JAN" , sum(decode(mon_sal, 'feb', salary )) "FEB" , SUM(salary) "TOTAL" 
from testemp group by name


NAME                        JAN        FEB      TOTAL
-------------------- ---------- ---------- ----------
ahmed                      1000       1500       2500
ali                        2000       2300       4300

بتاريخ:

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

مشكورين جميعا على المشاركة في حل هذه المسالة

انا حاولت مسبقاً بمثل هذه التجربة وتطلع مكررة جداً اي الاسماء كلها

ولكن عدلت في المسالة بالاعلى ولم اجد حل ولكن قد اعطي مفتاحا بحلي
وانا لي اكثر من يوم وانا احاول وان شاء الله نشوف حل جميعاً

التعديل :
SQL> select name , NVL(decode (mon_sal, 'JAN' , salary ),0) "JAN" ,
2 NVL(decode (mon_sal, 'FEB' , salary ),0) "FEB",
3 NVL(decode (mon_sal, 'MAR' , salary ),0) "MAR"
4 from employee;
الناتج:
----------------------------------------------------------------------------------------

NAME JAN FEB MAR
--------- -------- -------- -------
JOHN 8000 0 0
JOHN 0 10000 0
JOHN 0 0 10000
LUIS 10000 0 0
LUIS 0 0 10000
JOSE 9000 0 0
JOSE 0 0 10000
----------------------------------------------------------------------------------------

المشكلة في التكرار
والمطلوب تداخل الاسماء كذلك اي لدي اكثر من اسم مكرر ولكن الراتب الشهري في مختلف
ليصبح لدي
JOH 8000 10000 0
JOSE 9000 0 10000
LUIS 10000 0 10000

والمجموعة لا تجدي نفعاً ..... ((GROUP BY))
ارجو اني وضحت وكذلك ننتظر الحل بفارغ الصبر حيث ان الامر في مصلحة الجميع
وشكراً مجدداً




التاج XYX

بتاريخ:

الاخ الكريم
حل الاخ AMGAD صحيح 100% ولا يوجد غبار عليه لأنك تقوم بتجميع قيم الاشهر على شكل صف ولتفادي التكرار يجب ان يتضمن الحل جميع الاشهر واعتقد ان الاخ AMGAD اعطى مثال على الحل
واعتقد انه من القليلين الذين يعطون الاجابة الصحيحة في المكان الصحيح

بتاريخ:

مشكور على التصحيح وبارك الله فيكم

وان شاء الله اخونا LuisFigo يستفيد من الحل




التاجxyx

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

مشكورين و إن شاء الله أجرب و أرد عليكم

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

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

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

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

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

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.