اذهب الي المحتوي
أوفيسنا

كيف يمكن إحصاء عدد من استعلام ووضعه فى استعلام آخر


الردود الموصى بها

السلام عليكم

بالمثال المرفق ثلاث استعلامات تحديد مبنية على توزيع الطلبة بناءاً على مجموعهم إلى ثلاث تخصصات

ويوجد استعلام رابع باسم "إحصائية" يستخرج من الجدول الأصلى عدد المسلمين والمسيحيين والمستجدين و...

والمطلوب تفضلاً استخراج عدد كل تخصص منفرداً وإلحاقة باستعلام "إحصائية"

شكراً مقدماً

db1.rar

رابط هذا التعليق
شارك

11 ساعات مضت, jjafferr said:

وعليكم السلام

اعطنا مثال من برنامجك لوسمحت

جعفر

أعانك الله على كثرة الردود .. المثال تم إرفاقه مع بداية الموضوع ، وقد وصلت فى تعديله لنصف الحل

الاستعلام " إحصائية " يأخذ شروطه من جدولين لينتج الأعداد التى سوف استخدمها فى تقرير خاص

هل من الممكن إستخراج نفس النتائج من استعلامات التخصص " تبريد - زخرفة - ملابس "

بمعنى كم مستجد وكم باقى وكم مسلم وكم مسيحى فى كل تخصص على حده

أرجو أن أكون قد أوضحت سؤالى ، وإلا سوف ألجأ إلى وضع الصور  :smile:

بالمرفق التالى ما توصلت إليه فى الإحصاء العام لكامل الجدول وليس لكل تخصص

db2.rar

رابط هذا التعليق
شارك

وعليكم السلام:smile:

 

هل هذا قصدك:

نعمل استعلام تجميع لكل من التخصصات ، (هنا نأخذ التبريد كمثال فقط)

853.Clipboard01.jpg.3bff8d2c8e1936f5ad28c839affa0849.jpg

.

ولكن هناك فراغات ،

853.Clipboard02.jpg.aa278a16cac2c73ba41bf3b9d8ceb1ac.jpg

.

يجب ان نملئها بإسم التخصص ، وعدد كل مجموعة

853.Clipboard03.jpg.1167134532138307f372ad9cdfeb6cbd.jpg

.

البيانات الكاملة لتخصص التبريد ، والذي يجب اتباع نفس الخطوات للتخصصات الاخرى ،

853.Clipboard04.jpg.1ae1b5604f5049294f7b2b0901167c06.jpg

.

نحول الاستعلام من وضع تصميم الى وضع SQL

853.Clipboard05.jpg.021896aa8a702bc690a760c3fe6a61a8.jpg

.

هذا هو الاستعلام بصيغة SQL

853.Clipboard06.jpg.c0088f3248548ef3c291b613fc654e6c.jpg

.

الآن نعمل نفس الاستعلام لبقية التخصصات ،

ولكن لا داعي لعمل الاستعلام بالطريقة اعلاه لبقية التخصصات ،

وانما نحن بحاجة الى اخذ SQL استعلام التبريد ، وتطبيقه على بقية التخصصات ،

وبين كل تخصص وآخر ، نكتب union all

 

SELECT IIf(Len([Trshh] & "")=0,"تبريد",[Trshh]) AS T, Case, Wrship, Count([Nr]) AS [Counter]
FROM تبريد
GROUP BY IIf(Len([Trshh] & "")=0,"تبريد",[Trshh]), Case, Wrship

union all

SELECT IIf(Len([Trshh] & "")=0,"زخرفة",[Trshh]) AS T, Case, Wrship, Count([Nr]) AS [Counter]
FROM زخرفة
GROUP BY IIf(Len([Trshh] & "")=0,"زخرفة",[Trshh]), Case, Wrship

union all

SELECT IIf(Len([Trshh] & "")=0,"ملابس",[Trshh]) AS T, Case, Wrship, Count([Nr]) AS [Counter]
FROM ملابس
GROUP BY IIf(Len([Trshh] & "")=0,"ملابس",[Trshh]), Case, Wrship

.

والنتيجة:

853.Clipboard07.jpg.1433fac9ebacd15eba62ed5c9c3c6535.jpg

.

جعفر

853.db1.mdb.zip

رابط هذا التعليق
شارك

شكرى وتقديرى لتجاوبك ومجهودك الكبير الرائع

أعترف بأننى أول مرة أتشرف بمقابلة استعلام  التوحيد

ويبدو أنه يقوم بالعد لمن يحقق شرطين معاً (مسلم+باق) ، (مسلم+مستجد) وهكذا

فى حين أننى أريد كم عدد المسلمين فى التخصص الواحد وكم عدد المستجدين فى نفس التخصص و...

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

m5zn_74641e5cb8fb6ac.png

تبريد: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]);""))
ملابس: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]<[A]);""))
                                                                                                                   
                                                                                                               

 

تم تعديل بواسطه أحمد العيسى
رابط هذا التعليق
شارك

هى محاولة ( لعل وعسى ) بعمل استعلام توحيد  كما اشرت باستخدام الاستعلامات الثلاثة كهرباء ، ملابس ، زخرفة

فأنتج  الاستعلام التالى

m5zn_9397e884fd4041f.png

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

حاولت صنع رؤوس مختلفة عند كتابة هذا الـ SQL   فأخذ الرؤوس الأولى كعناوين فى أول صف !!!

SELECT Count(IIf([Wrship]="مسيحى","")) AS مسيحى_كهرباء, Count(IIf([Wrship]="مسلم","")) AS مسلم_كهرباء, Count(IIf([Case]="مستجد","")) AS مستجد_كهرباء, Count(IIf([Case]="منقول","")) AS منقول_كهرباء, Count(IIf([Case]="باق","")) AS باق_كهرباء
FROM كهرباء;
union all
SELECT Count(IIf([Wrship]="مسيحى","")) AS مسيحى_ملابس, Count(IIf([Wrship]="مسلم","")) AS مسلم_ملابس, Count(IIf([Case]="مستجد","")) AS مستجد_ملابس, Count(IIf([Case]="منقول","")) AS منقول_ملابس, Count(IIf([Case]="باق","")) AS باق_ملابس
FROM ملابس;
union all
SELECT Count(IIf([Wrship]="مسيحى","")) AS مسيحى_زخرفة, Count(IIf([Wrship]="مسلم","")) AS مسلم_زخرفة, Count(IIf([Case]="مستجد","")) AS مستجد_زخرفة, Count(IIf([Case]="منقول","")) AS منقول_زخرفة, Count(IIf([Case]="باق","")) AS باق_زخرفة
FROM زخرفة;

 

تم تعديل بواسطه أحمد العيسى
رابط هذا التعليق
شارك

ماشاء الله عليك:smile:

اردت طرف الخيط ، والباقي سهل ان شاء الله:smile:

 

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

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

12 ساعات مضت, jjafferr said:

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

جعفر

فعلاً .. ما زلت فى حاجة للمساعدة  بخصوص استعلام التوحيد  ، كيف أأخذ منه بياناته فى تقرير

أرفقت لك مثال بهذا الاستعلام ومعه تقرير باسم"تقرير_إحصائية_مفصلة"

رجاء التعديل عليه مع جزيل الشكر

db3.rar

رابط هذا التعليق
شارك

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

الآن لجأت لأسلوب آخر أكثر تعقيداً  فى استخلاص نتائج مفصلة .. لكن للأسف

أول 5 خانات من الجدول التالى صحيحة ويتطابقوا مع استعلام التوحيد  ، والباقى ليست صحيحة .. أين الخطأ

m5zn_9b6e917ffdaa741.png

ما لجأت إليه فى السطور التالية

مسيحى_ت: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]) And ([Wrship]="مسيحى") ;""))
مسلم_ت: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]) And ([Wrship]="مسلم") ;""))
مستجد_ت: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]) And ([Case]="مستجد") ;""))
منقول_ت: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]) And ([Case]="منقول") ;""))
باق_ت: Count(IIf([Trshh]="تبريد" Or ([Trshh]="تبريد" Or [Trshh] Is Null) And ([SumTotal]>=[A]) And ([Case]="باق") ;""))

مسيحى_م: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]< [A]) And ([Wrship]="مسيحى") ;""))
مسلم_م: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]< [A]) And ([Wrship]="مسلم") ;""))
مستجد_م: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]< [A]) And ([Case]="مستجد") ;""))
منقول_م: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]< [A]) And ([Case]="منقول") ;""))
باق_م: Count(IIf([Trshh]="ملابس" Or ([Trshh]="ملابس" Or [Trshh] Is Null) And ([SumTotal]>=[B] And [SumTotal]< [A]) And ([Case]="باق") ;""))

مسيحى_ز: Count(IIf([Trshh]="زخرفة" Or ([Trshh]="زخرفة" Or [Trshh] Is Null) And ([SumTotal]<[B]) And ([Wrship]="مسيحى") ;""))
مسلم_ز: Count(IIf([Trshh]="زخرفة" Or ([Trshh]="زخرفة" Or [Trshh] Is Null) And ([SumTotal]<[B]) And ([Wrship]="مسلم") ;""))
مستجد_ز: Count(IIf([Trshh]="زخرفة" Or ([Trshh]="زخرفة" Or [Trshh] Is Null) And ([SumTotal]<[B]) And ([Case]="مستجد") ;""))
منقول_ز: Count(IIf([Trshh]="زخرفة" Or ([Trshh]="زخرفة" Or [Trshh] Is Null) And ([SumTotal]<[B]) And ([Case]="منقول") ;""))
باق_ز: Count(IIf([Trshh]="زخرفة" Or ([Trshh]="زخرفة" Or [Trshh] Is Null) And ([SumTotal]<[B]) And ([Case]="باق") ;""))

 

رابط هذا التعليق
شارك

السلام عليكم:smile:

 

سؤالك كان يدل على انك تريد احصائية ، لهذا السبب اخذت طريق استعلام التوحيد ، ولكن بما ان السؤال اصبح واضح ، فالاجابة اقرب:smile:

يجب ان يكون عندك بيانات صحيحة في الجدول علشان تجرب الاستعلام T المرفق ، واللي هو مصدر بيانات للتقرير تقرير_إحصائية_مفصلة ، واللي عملت تعديل على قسم التبريد (والباقي عليك:smile: ) ،

في خطأ في استعلاماتك ، فجرب هذا الاستعلام

SELECT 
Sum(IIf([Wrship]="مسيحى" And [SumTotal]>=[A] And ([Trshh]="تبريد" Or IsNull([Trshh])),1,0)) AS T_مسيحى, 
Sum(IIf([Wrship]="مسلم" And [SumTotal]>=[A] And ([Trshh]="تبريد" Or IsNull([Trshh])),1,0)) AS T_مسلم, 
Sum(IIf([Case]="مستجد" And [SumTotal]>=[A] And ([Trshh]="تبريد" Or IsNull([Trshh])),1,0)) AS T_مستجد, 
Sum(IIf([Case]="منقول" And [SumTotal]>=[A] And ([Trshh]="تبريد" Or IsNull([Trshh])),1,0)) AS T_منقول, 
Sum(IIf([Case]="باق" And [SumTotal]>=[A] And ([Trshh]="تبريد" Or IsNull([Trshh])),1,0)) AS T_باق,

Sum(IIf([Wrship]="مسيحى" And [SumTotal]<[B] And ([Trshh]="زخرفة" Or IsNull([Trshh])),1,0)) AS Z_مسيحى, 
Sum(IIf([Wrship]="مسلم" And [SumTotal]<[B] And ([Trshh]="زخرفة" Or IsNull([Trshh])),1,0)) AS Z_مسلم, 
Sum(IIf([Case]="مستجد" And [SumTotal]<[B] And ([Trshh]="زخرفة" Or IsNull([Trshh])),1,0)) AS Z_مستجد, 
Sum(IIf([Case]="منقول" And [SumTotal]<[B] And ([Trshh]="زخرفة" Or IsNull([Trshh])),1,0)) AS Z_منقول, 
Sum(IIf([Case]="باق" And [SumTotal]<[B] And ([Trshh]="زخرفة" Or IsNull([Trshh])),1,0)) AS Z_باق,

Sum(IIf([Wrship]="مسيحى" And [SumTotal]>=[B] And [SumTotal]<[A] And ([Trshh]="ملابس" Or IsNull([Trshh])),1,0)) AS M_مسيحى, 
Sum(IIf([Wrship]="مسلم" And [SumTotal]>=[B] And [SumTotal]<[A] And ([Trshh]="ملابس" Or IsNull([Trshh])),1,0)) AS M_مسلم, 
Sum(IIf([Case]="مستجد" And [SumTotal]>=[B] And [SumTotal]<[A] And ([Trshh]="ملابس" Or IsNull([Trshh])),1,0)) AS M_مستجد, 
Sum(IIf([Case]="منقول" And [SumTotal]>=[B] And [SumTotal]<[A] And ([Trshh]="ملابس" Or IsNull([Trshh])),1,0)) AS M_منقول, 
Sum(IIf([Case]="باق" And [SumTotal]>=[B] And [SumTotal]<[A] And ([Trshh]="ملابس" Or IsNull([Trshh])),1,0)) AS M_باق
FROM Tbl_Basic, tbl_student;

 

جعفر

853.1.db1.mdb.zip

  • Like 1
رابط هذا التعليق
شارك

معلش "على رأى المصريين" .. تعبتك معايا

أضفت بيانات إضافية للجدول فى الملف المرفق للإختبار

ما زال الخطأ فى استخلاص النتائج موجوداً فى تخصصى الملابس والزخرفة

الوحيد الذى نتائجه صحيحة هو استعلام التوحيد

m5zn_7dd8bac58d52431.png

 

853.1.db2.rar

تم تعديل بواسطه أحمد العيسى
رابط هذا التعليق
شارك

تفضل:smile:

 

هناك عدة طرق لجلب البيانات من استعلام التوحيد (مثلها مثل جلب البيانات من اي استعلام عادي او من الجدول) ، بإستخدام Recordset او Dlookup مثلا ،

ولكنني سأستعمل استعلام التوحيد بطريقه اخرى ، علشان في النهاية يكون عندنا سجل واحد فقط:smile:

 

استعلام التوحيد الحالي ، بتغيير اسم الحقول ليتناسب مع T = تبريد

853.2.Clipboard01.jpg.700fe2b85dd5a4f394560e631c23d6e4.jpg

.

اخذت البيانات اعلاه الى ملف اكسل ، لشرح الطريقة التي سنتبعها في تفكيك الحقول اعلاه ، وعمل الاستعلامات لاحقا:

 

1. السطر رقم 1 ، عملنا جميع الحقول الموجودة في الاستعلام اعلاه ، ولكن بشكل افقي ،

2. السطر رقم 2و3و4 ، لاحظ بالالوان ، اخذنا كل رقم تحت اسمه ، والحقول الغير موجودة ، نكتب مكانها صفر (للارقام) ، واسم القسم لكل السجلات ،

3. السطر رقم 5 ، ثم سنعمل استعلام اجمالي ، بهذه الطريقة لكل حقل ،

4. السطر رقم 6 ، وهو المطلوب كإستعلام اخير ، لإستعماله كمصدر بيانات للإستعلام

853.2.Clipboard02.jpg.a6ccebe5ed79e73fdb61bb73a0303252.jpg

.

تسلسل النشوء والتطور والتحول في الاستعلامات

853.2.Clipboard03.jpg.4d5f491a8a24273ee51e3c00bcd64871.jpg

.

بالنتائج

853.2.Clipboard04.jpg.2909f570a2b39e6a58d73e626f0f5d28.jpg

.

والنتيجة في التقرير

853.2.Clipboard05.jpg.60adef8ade9b3886e5546a3f6224eb78.jpg

.

 

جعفر

853.2.db2.mdb.zip

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information