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

مشكله مع Sum( Decode) ...

Featured Replies

بتاريخ:

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

كنت عايز من اخواني شرح الاستعلام الاتي

select count (*) tota,l
sum(decode(to_shar(hire_date, 'yyyy') ,1995,1,0))  "1995"



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

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

السلام عليكم ورحمة الله .. رمضان كريم



سؤال هو
شرح ..

select count (*) total
sum(decode(to_char(hire_date, 'yyyy') ,1995,1,0)) "1995"



طبعا هو ليه باقي بس النقطه اللي مش فاهمها هي decode ماهي وظيفتها في هذا المثال

وشكرا,,

بتاريخ:

أخي الكريم

كل عام وأنت بخير


الأمر DeCode هو أمر يستخدم في إنشاء شرط داخـل الإستعلام ، فيمكن توضيحة
في المثال التالي :


لديك جدول يدعي Emp ، وهو خاص بجدول الموظف ، يحتوي علي الحقول الثلاثة
التالية :

Enumber --> رقم الموظف
Ename --> إسم الموظف
Sex --> النـــوع

يتم التخزين داخل حقل ال Sex قيمة واحدة إما حرف ( M ) لتمثيل قيمــة
الذكر أو حرف ( F ) لتمثيل قيمة الأنثي.


المطلوب إنشاء إستعلام لعرض كافة الموظفين بحيث إجراء ضبط لحقل ال Sex
بحيث أن يعرض قيمة ذكر أو أنثي :

الإجابة :
---------

Select Enumber,Ename,DeCode(Sex,'M','ذكـر','F','انثي') As Esex
From Emp

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

جزاك الله خيرا

وجعله ان شاء الله في ميزان حسناتك

بتاريخ:

أولا شرح الدالة sum
تقوم بجمع مجموعة من الأعداد الموجودة في أحد الاعمدة وذلك بتخزين القيمة الموجودة في الصف الأول ومن ثم إضافة القيمة الموجودة في الصف الثاني إلى القيمة السابقة وهكذا
ثانيا شرح الدالة decode
تقوم باختبار قيم موجودة في عمود ما
إذا كانت القيمة مساوية للقيمة التي سوف تختبرها تعيد القيمة 1
إذا كانت القيمة غير مساوية للقيمة التي سوف تختبرها تعيد القيمة 2

Decode(ColumnName , ConditionValue, ReturnValue1,ReturnValue2)


مثال
إذا اردنا ان نظهر عمود يوضح إذا كان اسم الموظف هو same
أم لا نقوم بكتابة التالي:

Decode (ename,'same','yes','no')


سوف يقرا كل سطر ويعيد ناتج الاختبار اذا كان اسم الموظف same
سيعيد yes
وإلا سيعيد no

أما بالنسبة للمثال الذي تريد شرحه فهو يحتوي على ثلاث دوال متداخلة يتم تنفيذها من الداخل إلى الخارج
To_char
Decode
Sum
في الدالة الأولى سيقوم بتحويل تاريخ التحاق الموظف على هيئة yyyy
وناتج هذه الدالة مثلا كالتالي:
1995,1994,1989,1995,1995,1990
ومن ثم يتم اختبار كل تاريخ من التواريخ الناتجة عن الدالة الاولى عن طريق الدالة الثانية بحيث
إذا كان التاريخ يساوي 1995
يعيد الرقم 1
وإلا سوف يعيد الرقم 0
وبالتالي ناتج الدالة decode من المثال السابق سوف يكون
1,0,0,1,1,0
ومن ثم يتم جمع هذه الصفوف عن طريق الدالة الثالثة decode
فيظهر الناتج التالي 3
أتمنى من الله العلي القدير أن أكون قد وضحت ما كنت تحتاج إليه راجيا من الله ان يوفقك وإيانا أجمعين

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

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

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

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

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

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.