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

استفسار عن Group By

Featured Replies

بتاريخ:

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

لو تسحمو يا شباب
حك يكتبلي مثال

انا عاوز اكتب جملة فيها group by لكن الجملة تستدعي بيانات من اكثر من جدول
انا كتبت جملة عادية تستدعي بيانات من جدول واحد
فتطلع عندي صحيحة وما فيها شي
لاكن لم اضيف حقل من جدول اخير يطلع رسالة خطا ويقول مكان from غير صحيح

فما هي الطريقة الصحيحة لكتابتها

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

بتاريخ:

فى الغالب يوجد علامة , قبل كلمة from
يفضل ارسال جملة select لتحديد المشكلة بدقة

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

بسم الله الرحمن الرحيم
اولا مشكورة اختي على الرد

ثانيا انا اشتي تقرير يطلع لي الزيارات التي قام بها مندوب لطبيب
بحث ان التقرير يكون على الشكل التالي
اسم المندوب رقم الطبيب اسم الطبيب التخصص الكلاس عدد الزيارات بين تاريخين
محمد 2 علي عام 1 20
بحث ان عندما ادخل التاريخين المطلوبين يطلع لي البيانات بشرط ما تتكرر يعني يطلع اسم الدكتور مرة واحدة وبجانبة عدد الزيارات
انا عملت جملة السلكت التالية
select doc_no count(doc_no) from daily_do
group by doc_no
وكانت تطلع بشكل تمام بس تطلع رقم الطبيب فقط وبجانبة عدد الزيارات

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

فياليت تساعديني في كتابة الجملة

مع العلم انا اشتي اطلع اسم المندوب من جدول المندوبين واسم الطبيب من جدول الاطباء اما بقية البيانات من جدول التقارير اليومية

ارجوا اني وصلت الفكرة بشكل جيد

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

بتاريخ:

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

طالما سوف تضع عمود آخر لابد من إرفاقه في جملة ال group by وكده هاتشتغل.

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

مشكور اخي على الرد

بس يا ربت لو تكتب مثال توضيحي

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

بتاريخ:

بص يا أخي ، نفرض أن لدينا جدولين ، الأول خاص بالإارات Dept والثاني يمثل الموظفين Emp ، المطلوب عرض كافة سجلات الإدارات مع عدد موظفين كل قسم وإجمالي مرتباتهم

الحل :

Select Dept.DeptNo, Dept.DName, Count(Emp.EmpNo) As Count_Emp, Sum(Emp.Sal) As Sum_Salary
From Dept Inner Join Emp On Dept.DeptNo = Emp.DeptNo
Group By Dept.DeptNo, Dept.DName




بعد ذلك قم بإرسال هذه الجملة لجروب بالتقرير


شكراً

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

والله اخي mma لو كان الامر بيدي لكنت خليتك مشرف عام على المنتديات

ولكن ولا اقدر اقول غير الله يفتح عليك ويزيدك كمان وكمان

با اجرب اكتب زي الي قلت واشوف

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

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

طيب اخي

انا حاولت اغير في الكود علي جبتة

ووصلت للنتيجة التالي


SELECT DAILY_DO.DOC_NO, DOCTOR.DOC_NAME, MANDOB.MAN_NAME,
DOCTOR.CLASSE, DOCTOR.TAKHASOS, Count(DAILY_DO.doc_no)
as Count_doc
FROM DOCTOR, MANDOB, DAILY_DO
WHERE DOCTOR.MAN_NO = MANDOB.MAN_NO
AND DAILY_DO.DOC_NO = DOCTOR.DOC_NO
Group By DAILY_DO.doc_no



بس يطلع هذا الخطى معي كما في الصورة المرفقة

post-15632-1211287998_thumb.jpg

بتاريخ:
والله اخي mma لو كان الامر بيدي لكنت خليتك مشرف عام على المنتديات
ولكن ولا اقدر اقول غير الله يفتح عليك ويزيدك كمان وكمان
با اجرب اكتب زي الي قلت واشوف
وجزاك الله كل خير


أممممممممممممممم

بجد أخي أنا أشكرك كل الشكر ويكفيني هذه المعاني الجميلة ، ولكن بجد أخي هناك أفضل مني بكثر بالمنتدي الكريم

علي العموم ، أشكرك كل الشكر

بس يطلع هذا الخطى معي كما في الصورة المرفقة


بص يا أخي ، الأمر Group By وظيفتة الأساسية هو إجراء مجموعات لجدول معين بحيث أن يتم إجراء حسابات مجاميعية علي جدول آخر ، لذلك أي حقل يخص الجدول الرئيسي Master يجب عليك وضعة ضمن Group By ، أما حقل جدول الـ Details فشيء طبيعي أنك تقم بإجراء مجاميع علية من Count و Sum و Max و Min و .... الي آخرة

علي العموم ، انظر الي الكود التالي :

SELECT DAILY_DO.DOC_NO, DOCTOR.DOC_NAME, MANDOB.MAN_NAME, DOCTOR.CLASSE, DOCTOR.TAKHASOS, Count(DAILY_DO.doc_no) as Count_doc
FROM DOCTOR, MANDOB, DAILY_DO
WHERE DOCTOR.MAN_NO = MANDOB.MAN_NO AND DAILY_DO.DOC_NO = DOCTOR.DOC_NO
Group By DAILY_DO.DOC_NO, DOCTOR.DOC_NAME, MANDOB.MAN_NAME, DOCTOR.CLASSE, DOCTOR.TAKHASOS




بمعني أدق لا تدرج الجملة ( Count(DAILY_DO.doc_no) as Count_doc ) ضمن الـ Group By ، ولا تدرج أي مجاميع أخري مثل الـ Sum, Max, Min, Avg .... الي آخرة ضمن هذه الجملة



بالتوفيق

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

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

مشكور اخي ورح اجرب الكود

ومشكور مرة ثانية

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

والله يا اخي الكريم
ماذا يقال

قال احد السلف الصالح:اذا اردت ان تجازي احدا ما جزاء لا تستطيع ان تجازيه اياه فقل له (جزاك الله خيرا)فإنك بذلك قد اوكلت جزاؤه عند الله وهو خير من يجزي

وانا لا اقول لك سوى جزاك الله كل خير

انا كل الي عملته نسخ من الكود الي انت كتبتة وعملت لصق والريبورت اشتغل زي الفل

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

بتاريخ:
انا كل الي عملته نسخ من الكود الي انت كتبتة وعملت لصق والريبورت اشتغل زي الفل


كويس أنه أشتغل ، بس بردوا أخي أنا أنصحك نصيحة أخوية وبدون زعل !!!

ياريت تحاول تفهم الكود ولما كتبته بهذا الشكل ، حتي بعد ذلك يمكنك صناعة ما تحتاجة بنفسك

شكراً ، وجزاك الله كل خير ، ويارب دايماً بالتوفيق
بتاريخ:
  • كاتب الموضوع

مشكور اخي على النصيحة وهذا الشي اكيد

بس عندي استفسار

انا الان تطلع معي كل الاطباء الذين انزارو بس الي ما ا نزارو ما يطلعوا

اشتي اخليهم يطلعو وتكون امامهم القيمة صفر

وشكرا

بتاريخ:
انا الان تطلع معي كل الاطباء الذين انزارو بس الي ما ا نزارو ما يطلعوا


مش فاهم ، ممكن توضيح أكثر


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

انا اقصد ان التقرير الن يطلع فقط الاطباء الذين تم زيارتهم من المندوبين
اما الاطباء الذين لم يزورهم المندوبين فلم يضهرو في التقرير
مع اني كنت اتوقع ان في التقرير يضهر اما م اسمائهم الرقم صفر

ارجوا ا ني وصلت الفكرة

ومشكور

بتاريخ:

عفواً أخي ، أكيد هناك مشكلة أخري حسابية غير واضحة مثل عمليات الربط بين الجداول ، مثلاً إستخدام الربط الداخلي بدلاً من الربط الخارجي ، أو إجراء شرط غير مناسب !!!

حاول تعمل فحص Test شامل علي جملة الإستعلام البنيوي SQL التي قمت بإنشائها


شكراً

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

الو
وينك اخي

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

اوكية اخي مشكور على تعبك معي

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

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

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

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

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

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.