حساب حقل بشرطين مختلفين بــ sql
#1
السلام عليكم
هل يمكنني حساب حقل بــ SQL بشرطين مختلفين في Query1 واحدة
مثلا
حساب حقل Mont على الشرط الأول
كود :
Select SUM (Mont) from TA1 where Mois=1


حساب حقل Mont على الشرط الثاني
كود :
Select SUM (Mont) from TA1 where Mois>1

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

PHP كود :
Select SUM (Mont)  from TA1 where Mois=1 or Mois>1 
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
الرد
#3
السلام عليكم...

نعم يمكنك ذلك باستعمال الاستعلامات الفرعية (Sub-query) كالتالي:

كود :
SELECT (SELECT SUM(Mont) FROM TA1 WHERE (Mois = 1)) AS Mont1, (SELECT SUM(Mont) FROM TA1 WHERE (Mois > 1)) AS Mont2

و سيكون لديك في الاستعلام حقلان هما Mont1 (من أجل Mois=1) و Mont2 (من أجل Mois>1).

نرجو الاستفادة و السلام.
الرد
#4
شكرا لك أخي Najy Ibraheem
هذا هو المقصود بالضبط يكون في الاستعلام حقلان
لكن لم تنجح معي عند تغيير خاصية Query1.Active الى True
يضهر خطاء في السطر الثاني وهو
Utilisation incorrecte de mot -clé . Elément Select Numéro de ligne :2
الرد
#5
اسلام عليكم...

الكود الذي كتيته في مشاركتي السابقة جربته مع قاعدة بيانات SQL Server و باستخدام TADOQuery و هو يعمل بشكل صحيح حسب المتوقع.

لكن عندما جربت نفس الجملة مع Access (داخل Access نفسه) فإنه يعترض عليها و يطلب ذكر الجدول خارج الاستعلامين الفرعيين، و في تلك الحالة سيتم إنتاج سجلات ببيانات مكررة حسب عدد سجلات الجدول!

أحد الحلول في حالة Access أن تنشئ استعلامين داخل Access (مثلاً Query1 و Query2) بحيث يكون كل استعلام لشرط واحد و باسم حقل (Alias) مختلف:

كود :
Query1: SELECT SUM(Mont) AS Mont1 FROM TA1 WHERE (Mois = 1) Query2: SELECT SUM(Mont) AS Mont2 FROM TA1 WHERE (Mois > 1)

ثم تجمعهما من خلال دلفي كالتالي:
كود :
SELECT * FROM Query1, Query2

نرجو الاستفادة و السلام.
الرد
#6
السلام عليكم


كود :
Select SUM (Mont) from TA1 where Mois>=1
اللهم علمنا ما ينفعنا و إنفعنا بما علمتنا
الرد
#7
السلام عليكم
شكرا Najy Ibraheem
إقتباس :
أحد الحلول في حالة Access أن تنشئ استعلامين داخل Access (مثلاً Query1 و Query2) بحيث يكون كل استعلام لشرط واحد و باسم حقل (Alias) مختلف:
وهذا ما اعمل به منذ فترة .
اردت اختصار الأمور بتجربت طريقة اخرى لكن للئسف على العموم شكرا جزيلا لك وللجميع
الرد
#8
السلام عليكم...

فقط توضيح لبقية الإخوة هو أن المطلوب حقلين أو عمودين لمجموع القيم في الحقل Mont: واحد لمجموع القيم المقابلة للقيمة 1 في الحقل Mois، و الآخر لمجموع القيم المقابلة للقيم الأكبر من 1 في الحقل Mois.

سلام.
الرد


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


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