الاستعلام عن دين زبون
#1
السلام عليكم
استفسار حول استعلام sql في adoquery لكي تظهر لك balance بين حقلي الدين و الدفع لزبون واحد هذا ما تطرقت له بعد تجربة عديدة لكن هي تظهر لكل الزبائن فما اريده هو لزبون واحد

كود :
ADOQuery1.Filter := 'TRC_IDClient = ' + QuotedStr('3'); ADOQuery1.Filtered := True; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT a.TRC_ID,a.TRC_Date, a.TRC_Credit,a.TRC_Versement,a.TRC_IDClient, (SELECT SUM(b.TRC_Credit - b.TRC_Versement) FROM TRClient b WHERE b.TRC_ID <= a.TRC_ID) AS TRC_Balance FROM TRClient a ORDER BY a.TRC_Date;'); ADOQuery1.Open;

استخدمة الفلترة العادية ثم الحساب لكن يظهر به خطئ او لا تظهر اي نتيجة هل من حل؟
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#2
لو تم ارفاق اسماء وبنية الجداول لكان الرد دقيق .. ولكن على حسب مافهت يمكن الاستعلام على النحو التالي:
كود :
SELECT TableName1.TRC_ID, TableName1.TRC_Date, SUM(TableName2.TRC_Credit - TableName2.TRC_Versement) as TRC_Balance FROM TableName1, TableName2 WHERE TableName2.TRC_ID = TableName1.TRC_ID GROUP BY TableName1.TRC_ClientName
الرد
#3
(04-10-2021, 09:04 AM)ferrero كتب : لو تم ارفاق اسماء وبنية الجداول لكان الرد دقيق ..
كل البيانات موجودة في جدول واحد اسمه TR_Client وليس جدولين فما اريد هو ان احصل على balance لـ زبون الذي TRC_IDClient يساوي 1 يعني يظهر لي فقط حركة زبون 1
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#4
كود :
... ADOQuery1.SQL.Add('SELECT * FROM TRClient');
كود :
...
كود :
إنشئ حقل جديد (TRC_Balance) calculated field
كود :
procedure ... ADOQuery1CalcFields ...
كود :
-------------------------------------
كود :
ADOQuery1.FieldByName('TRC_Balance').Value := ADOQuery1.FieldByName('TRC_Credit').Value - ADOQuery1.FieldByName('TRC_Versement').Value;
الرد
#5
سلام عليكم
ارفق لنا صورة لتصميم الجدول فقط .
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
الرد
#6
(04-10-2021, 11:04 PM)Mr.DOS كتب : ارفق لنا صورة لتصميم الجدول فقط .
هذا مثال مع تصميم الجدول لزبونين بالمرفقات و ما اريده هو اظهار لكل زبون لوحده اسم الجدول TR_Client

(04-10-2021, 06:42 PM)ferrero كتب : ADOQuery1.SQL.Add('SELECT * FROM TRClient');

شكرا على المداخلة لكن صدقا لم افهم شيء المهم الجدول في المرفق فوق لكي توضح لك الصورة


الملفات المرفقة
.zip   4541411.zip (الحجم : 306 بايت / التحميلات : 22)
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#7
[صورة: 1sCNPGK.jpg]
الرد
#8
(05-10-2021, 09:48 AM)ferrero كتب : [صورة: 1sCNPGK.jpg]

شكرا على التدخل لكن ما اريده ان يظهر لي الفارق لكل صف لحاله يعني كل تاريخ يعطيني كم بقي بحسابه وليس مجموع كل الصفوف
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد
#9
وعليكم السلام
أظن أن ferrero قد أجابك

كود :
SELECT TRC_Credit,TRC_Versemet,TRC_Client,SUM(TRC_Credit - TRC_Versement) as TRC_Balance FROM TRC_Client Where TRC_Client=1
الرد
#10
(06-10-2021, 12:24 AM)ALG2009 كتب : أظن أن ferrero قد أجابك
لم ينجح معي و الناتج الذي اريده ان يظهر مبين في المرفق حتى تفهموا قصدي جيدا ..


الملفات المرفقة
.zip   4541411.zip (الحجم : 308 بايت / التحميلات : 19)
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير Smile
الرد


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


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