المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
03-01-2023, 07:03 PM
(آخر تعديل لهذه المشاركة: 04-01-2023, 11:09 PM بواسطة S.FATEH.)
الى الاخوة مشكلتي هي حساب عدد الذكور و عدد الاناث في حقل sex جدول enfant
استعملت الكود التالي ينفذ بدون خطأ ويعطي الناتج 0 ولم اعرف الخطأ قاعدة البيانات sqlserver وشكراً
كود :
DTM.QrySta.Close;
DTM.QrySta.SQL.clear;
DTM.QrySta.SQL.Add ('SELECT Enfant.Sex, Count(Sex) AS CompteDeSex');
DTM.QrySta.SQL.Add ('FROM Enfant ');
DTM.QrySta.SQL.Add ('where sex=''ذكر''');
DTM.QrySta.SQL.Add ('GROUP BY Enfant.Sex');
DTM.QrySta.Open;
LabHome.Caption := IntToStr(DTM.QrySta.FieldByName('CompteDeSex').AsInteger);
وقل ربي زدني علماً
المشاركات : 52
المواضيع 3
:
: 2
الإنتساب : Nov 2010
كود :
with DTM.QrySta do
begin
Close;
SQL.Text := 'SELECT Sex, Count(Sex) AS CompteDeSex FROM Enfant where sex = :male GROUP BY Sex';
ParamByName('male').Value := 'ذكر';
Open;
end;
LabHome.Caption := DTM.QrySta.FieldByName('CompteDeSex').AsString;
المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
شكــرا الاخ
ferrero
نفس المشكل الكود لا يعطي نتيجة
وقل ربي زدني علماً
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
مرات السبب هو القيمة المخزنة في قاعدة البيانات ، انت تكتب "ذكر" لكن تخزن رموز غير مفهومة ، غيرها اذا كان ذكر اعطيه 1 و اذا انثى 0 و عند الفلترة اعطيها قيمة 1 او 0
مجرد اقتراح
اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
والله شيئ بسيط لكن حيرني الاخ larbiparadox في قاعدة البيانات تخزن عادي و لا اعرف السبب ممكن اعود الى اقتراحك شكرا
وقل ربي زدني علماً
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
جرب :
كود :
with DTM.QrySta do
begin
Close;
SQL.Text := 'SELECT Sex, Count(Sex) AS CompteDeSex FROM Enfant where sex like :male GROUP BY Sex';
ParamByName('male').Value := 'ذكر';
Open;
end;
LabHome.Caption := DTM.QrySta.FieldByName('CompteDeSex').AsString;
أو
كود :
with DTM.QrySta do
begin
Close;
SQL.Text := 'SELECT Sex, Count(Sex) AS CompteDeSex FROM Enfant where sex like :male GROUP BY Sex';
ParamByName('male').Value := QuotedStr('ذكر');
Open;
end;
LabHome.Caption := DTM.QrySta.FieldByName('CompteDeSex').AsString;
أو
كود :
with DTM.QrySta do
begin
Close;
SQL.Text := 'SELECT Sex, Count(Sex) AS CompteDeSex FROM Enfant where sex = :male GROUP BY Sex';
ParamByName('male').Value := QuotedStr('ذكر');
Open;
end;
LabHome.Caption := DTM.QrySta.FieldByName('CompteDeSex').AsString;
أو
كود :
with DTM.QrySta do
begin
Close;
SQL.Text := 'SELECT TRIM(Sex), Count(Sex) AS CompteDeSex FROM Enfant where sex = :male GROUP BY Sex';
ParamByName('male').Value := 'ذكر';
Open;
end;
LabHome.Caption := DTM.QrySta.FieldByName('CompteDeSex').AsString;
اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
المشاركات : 476
المواضيع 0
:
: 217
الإنتساب : Apr 2011
سلام عليكم
من المفروض الحقل sex الموجود بالجدول enfant يأخد المفتاح الخاص بالجدول sex
وكما تفضل الاخ العربي برادوكس في الرد الاستعلام يكون بـ 0 او 1
- غالبا ما يكون المشكل في اللغة العربية (مشكل شائع في MSSQL) .
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
جرب باستخدام التجميع
كود :
select
count(Sex)
from Enfant
group by Sex
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم