السلام عليكم ورحمه الله وبركاته
عندي استفسار بسيط عن اجراء عمليه حسابيه كالتالي
عندي عمود يحتوي على كلمات اريد ان اعرف عدد كلمه معينه مثل عمود يحتوي على yes و no و ok كيف احسب عدد تكرار كلمه مثلا ok في العمود
السلام عليكم ورحمه الله وبركاته
عندي استفسار بسيط عن اجراء عمليه حسابيه كالتالي
عندي عمود يحتوي على كلمات اريد ان اعرف عدد كلمه معينه مثل عمود يحتوي على yes و no و ok كيف احسب عدد تكرار كلمه مثلا ok في العمود
السلام عليكم ورحمة الله وبركاته
يمكنك ذلك بإذن الله باستخدام الدالة count على العمود المطلوب ولا تنسى أن يتم التجميع group by بواسطة نفس العمود فيقوم بتقسيم هذا العمود إلى مجموعات كل منها تضم نفس الكلمة ثم يقوم بحساب العدد فى كل مجموعة
select colName, count(colName) from Table1 group by colName
أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا
Dr Sayed Tohamy
Programming Instructor
مدرب برمجة
---------------
EmaSoft2000
-------------------
فرضاً أن اسم الجدول table واسم العمود column، يمكنك عدّ جميع القيم هكذا:
SELECT column, COUNT(column) FROM table GROUP BY column;
ستعطي شيء مثل:
no | 6ok | 4yes | 3
اذا كنت تريد قيمة محددة، يمكنك استخدام:
SELECT COUNT(column) FROM table WHERE column = 'ok';
وستعطي:
4
فقط اقتراح، أفضل أن تغير نوع البيانات من بيانات نصّية إلى نوع أصغر مثل TINYINT، حجمه بايت واحد، وتعطي كل قيمه رقم يمثلها:
0. no1. yes2. ok
ستوفر عليك بعض الحجم (yes تتطلب 3 بايتات، يمكنك توفير بايتين).
اولاً شكرا لكم من كل قلبي
ثانيا كيف استخدم القيم الناتجه بعد الاستعلام في مسائل حسابيه
نتج عندي
no | 6ok | 4yes | 3
طيب كيف استخدم هذه الارقام 6 و4 و 3 في عمليات حسابيه
تم تعديل هذه المشاركة بواسطة ADEL29 في 13 أكتوبر 2013 في 21:01
هل استطيع اجراء العمليات الحسابيه على نتائج الاستعلام او يجب حفظها قبل استخدامها ؟
ممكن شرح
اسف اذا كنت ثقيلا بالاسئله
ولكني مبتدى وانتظر اجابتكم
جزاكم الله خيرا
السلام عليكم ورحمة الله وبركاته
جميع العمليات الحسابية يجب أن تتم فى الاستعلام نفسه، لأن النتيجة عندما تظهر لا تستطيع التحكم فيها لأنها غير مخزنة فى متغير، إلا إذا قمت بتخزينها فى لغة البرمجة السى شارب أو الفيجوال بيسك داخل أى كائن مثل DataTable فتستطيع أن تتعامل معه بأى عمليات حسابية
إلا أنك ورغم ذلك تستطيع التعامل مع هذا الاستعلام كأنه استعلام داخل لاستعلام آخر
select * from ( select colName, count(colName) as Quantity from Table1 group by colName ) as NewTable
أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا
Dr Sayed Tohamy
Programming Instructor
مدرب برمجة
---------------
EmaSoft2000
-------------------
ممكن توضح ماهي العملية الحسابية لجد افضل حل
سبحانه الله وبحمده سبحانه الله العظيم
if (You Love ArabTeam2000 ) MessageBox.Show("All ArabTeam2000 Love You"); else MessageBox.Show("go to your mama"); التعليمه هذة
select colName, count(colName) from Table1 group by colName
تعطيني النتيجه التاليه
no | 6ok | 4yes | 3
لكن اذا مسحت yes من الجدول فان النتيجه تكون
no | 6ok | 4
انا اريد ان يعيد لي قيمه es على انها تساوي صفر مثل هذا
no | 6ok | 4yes | 0
KARIMSOFT كتب:ممكن توضح ماهي العملية الحسابية لجد افضل حل
العمليات هي ضرب وطرح وجمع
السلام عليكم ورحمة الله وبركاته
كيف تريده أن يظهر لك كلمة yes وهى غير موجودة أصلاً فى الجدول؟؟؟ من أين له أن يعرف بالكلمات التى تريدها كلها؟؟؟ هو يقوم بتقسيم الجدول إلى مجموعات بناء على الكلمات التى عنده
أما إذا كنت تريد إظهار كلمات معينة وعدد تكرار كل كلمة حتى لو لم تكن موجودة فيجب عليك أن تنشئ جدولاً يحتوى على هذه الكلمات وليكن اسمه Words يحتوى على عمود واحد اسمه Col1 واستخدم الأمر التالى
لاحظ أن الجدول Words لابد أن يحتوى على كل الكلمات التى تريد إظهارها بغض النظر عن وجودها أو عدمه فى الجدول الأساسى
لاحظ أيضاً أنك تكتب كل كلمة فى الجدول Words مرة واحدة فقط وإلا سيعطيك نتائج خاطئة
select Words.Col1, IsNull(count(Table1.ColName) ,0) from Words left outer join Table1 on Words.Col1 = Table1.ColName group by Words.Cols
أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا
Dr Sayed Tohamy
Programming Instructor
مدرب برمجة
---------------
EmaSoft2000
-------------------