استفسار عن استعلام Sql
#1
السلام  عليكم ورحمة الله تعالى وبركاته
أما بعد ، سبق لي وطرحت هذا السؤال ولكن لم يستطع أحد الإجابة، لعلي لم أستطع توصيل الفكرة فقررت إعادة صياغة السؤال لعلي أجد من يعينني
المطلوب: أريد عرض مجموعة من الإحصائيات من جدول تسجيلات التلاميذ [size=small] بحيث يعرض لي عدد المسجلين لكل دورة، عدد الذكور والإناث لكل دورة، وكذلك المسجلين والمتواجدين في القائمة الإحتياطية[/size].
الشرح:
[size=small]يوجد جدولين الأول : جدول التلاميذ eleve  يحتوي على الحقول التالية: كود Code_eleve (مفتاح رئيسي)و الجنس sex و كيفية التسجيل في القائمة Type_insc (مسجل أو إحتياطي)،[/size] code_tournoi وهو كود الدورة وهو عبارة عن مفتاح ثانوي من الجدول الرئيسي للدورة tournoi.
المشكل: 
المشكل يكمن في Group by فهي تصنف فقط العدد الكلي للتلاميذ في كل دورة أما عدد الذكور/الإناث، المسجلين/الإحتياطيين، فيضهر العدد الكلي وليس العدد الخاص بالدورة الموافقة.

[size=small]كيف يمكنني إصلاح الأمر؟ وبارك الله فيكم[/size]
كود :
select  COUNT(eleves.Code_tournoi), (select COUNT(*) from Eleves where sex='ذكر'), (select COUNT(*) from Eleves where sex='أنثى'), (select COUNT(*) from Eleves where type_insc='مسجل'), (select COUNT(*) from Eleves where type_insc='احتياط'), (select Tournoi.des_tournoi from Tournoi where Eleves.Code_tournoi=Tournoi.Code_tournoi) FROM        dbo.Eleves group by Eleves.Code_tournoi
الرد
#2
السلام عليكم

هذا لأن عمل Group by تقوم بذلك إن نزعتها ماهو يعطيك الناتج ؟
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
[-] كل من 1 user says قال شكرا ل لؤي على المشاركة المفيدة
  • nacertaker
الرد
#3
(16-02-2017, 12:46 PM)لؤي كتب : السلام عليكم

هذا لأن عمل  Group by تقوم بذلك إن نزعتها ماهو يعطيك الناتج ؟

لما أنزع Group by  لا يشتغل 
Msg 8120, Level 16, State 1, Line 6

Column 'dbo.Eleves.Code_tournoi' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
الرد
#4
إذا كان هناك حقول مشتركة بين eleve و tournoi إستعمل الخاصية join
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
[-] كل من 1 user says قال شكرا ل لؤي على المشاركة المفيدة
  • nacertaker
الرد
#5
(16-02-2017, 01:20 PM)لؤي كتب : إذا كان هناك حقول مشتركة بين eleve و tournoi إستعمل الخاصية join

شكر الأخ لؤي .. لكن لما أنزع Group by يصبح الإستعلام يعرض العدد الكلي للمسجلين والذكور والإناث ...
ولكني أريد أن يعرض القيم مفصلة بكل دورة ،ى يعني:
عدد الدكور في كل دورة
عدد الإناث في كل دورة
عدد المسجلين في كل دورة
عدد الإحتياطيين في كل دورة
الكل في جدول واحد
الرد
#6
تحافظ على نفس النتيجة بطريقة مختلفة جربها ممكن تعطيك مبتغاك
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
الرد
#7
سلام عليكم
اعد النضر في تصميم الجداول او بالاحرى قم بإضافة جدول احداث جديد
لان الشيئ الذي تريد الوصول اليه خرج عن Joins و MasterDetail
وكأنك تريد عمل فرز لناتج مفلتر ثم اعادة فلترته من جديد .
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
[-] كل من 1 user says قال شكرا ل Mr.DOS على المشاركة المفيدة
  • nacertaker
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم