الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف انشيء حقلي مجموع بشرط مختلف لكل منهما داخل نفس الاستعلام ؟

مغلق
بدأه النبهاني في 2 يوليو 2007 · 7 رد · 900 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

في الحقيقة أرغب بعمل استعلام من جدول به حقول كما يلي :

rDate Type pND pDD aaND aDD1

حيث الحقل rDate يحتوي على تاريخ الادخال ، الحقل Type يحتوي على قيمه رقمية 1 او 2

باقي الحقول تحتوي على قيمه رقميه تثمل عدد

اريد عمل استعلام كما يلي :

MonthName Day Type1total Type2 Total

الحقل MonthName اسم الشهر ، Day رقم يمثل مكان اليوم من الشهر ، وهذان الحقلان سهلان وسؤالي ليس هنا...

سؤالي كيف اعمل حقل مجموع اسمه Type1Total بحيث يكون مجموع الحقول pND pDD aaND aDD1 لكن للسجلات التي يكون قيمه الحقل Type فيها يساوي 1

وكذلك كيف اعمل حقل مجموع اسمه Type2Total بحيث يكون مجموع الحقول pND pDD aaND aDD1 لكن للسجلات التي يكون قيمه الحقل Type فيها يساوي 2

المشكله انني لم استطع انشاء الحقلين في استعلام واحد !!

جربت استخدام الداله DSum لكنني فشلت لانها عطت المجموع قبل التجميع ويكون نفسه للحقلين مع انني اضع شرطا في الباراميتر الثالث لهذه الداله ...

:unsure:

#2

جرب مايلي والتي هي باستخدام iif

select sum( iif(type=1,pND +pDD +aaND +aDD1,0) as Type1Total  , 
sum( iif(type=2,pND +pDD +aaND +aDD1,0) as Type2Total
from mytable

لم افهم المطلوب بالضبط لكن يمكنك الاستفادة من هذه الفكرة

#3

شكرا لك اخي الكريم ... هذا هو بعينه ، اكثر من حقل مجموع داخل استعلام واحد كل منها بشرط ... لم تخطر الداله IIF على بالي ابدا وكان كل تفكيري محصور على الداله DSum التي لخبطت تقاريري كلها ،

تحياتي

#4

لقد واجهتني مشكله ، وهي انني عندما اضع اكثر من شرط في الداله IIF لا يتم تحقيق الشرط اساسا !

مثلا كتبت شيء مثل التالي :

select sum( iif(type=1 And Ward = 1,pND +pDD +aaND +aDD1,0) as Type1TotalWard1  , 
sum( iif(type=1 And Ward = 2 ,pND +pDD +aaND +aDD1,0) as TypeTotalWard2
from mytable

لكن ما لاحظته هو انه يكون لكل من الحقلين الناتجين نفس القيمه !! دون ان يتم الاخذ بالشرط التالي وهو Ward = 1 او 2 مع العلم بأن قيمها مختلفه في الجداول وحاولت التاكد منها اكثر من مره .

:blink:

#5

أخي النبهاني

أهلاً بك

أرفق المثال الذي قمت بمحاولتك فيه لعلني أتصول معك لشيء سواء عن طريقة SQl أو دالة عامة

#6

انسخ كل سطر بعامود فارغ بالاستعلام : ، و جرب :

Type1TotalWard1: iif([type]=1 And [Ward] =1;[pND]+[pDD]+[aaND]+[aDD1];0)

Type1TotalWard2: iif([type]=1 And [Ward] =2;[pND]+[pDD]+[aaND]+[aDD1];0)

I'll Be Back

#7

اخي Maxxin لقد جربت طريقتك ولكنها لم تنفع !

مرفق المشروع .. مع العلم ان العمل كله على الاستعلام .. اعذروني اذا كان هذا الاستعلام كبيرا :lol:

DietSystemSample.zip

#8

أخي النبهاني

خذ بالك

أنني أول ما عرضت الاستعلام في عرض SQL أغلقت الجهاز بطريقة غير نظامية وكل ما حاولت أفتح الجهاز أتردد خفت يظهر لي الاستعلام مع بدء التشغيل .

هذا حل مبديء سريع من متعلم جربه وإذا أقتربنا من النتيجة المطلوبة أخبرنا بالمتبقي لكي نواصل حتى نصل.

على فكرة

هناك استعلامين الأول : Musleh1

هذا الاستعلام يجمع على شرط واحد وهو Type

هناك استعلامين الثاني: Musleh2

هذا الاستعلام يجمع على شرطين هما Type و Ward

إذا اردت تطبيق الاستعلام الثاني فأوقف Module1 وفعل Module2

DietSystemSample.rar

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…