03-10-2021, 11:34 AM (آخر تعديل لهذه المشاركة: 03-10-2021, 11:34 AM بواسطة AgroSoft.)
السلام عليكم
استفسار حول استعلام 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;
استخدمة الفلترة العادية ثم الحساب لكن يظهر به خطئ او لا تظهر اي نتيجة هل من حل؟
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير
لو تم ارفاق اسماء وبنية الجداول لكان الرد دقيق .. ولكن على حسب مافهت يمكن الاستعلام على النحو التالي:
كود :
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
04-10-2021, 09:44 AM (آخر تعديل لهذه المشاركة: 06-10-2021, 09:35 AM بواسطة Admin.)
(04-10-2021, 09:04 AM)ferrero كتب : لو تم ارفاق اسماء وبنية الجداول لكان الرد دقيق ..
كل البيانات موجودة في جدول واحد اسمه TR_Client وليس جدولين فما اريد هو ان احصل على balance لـ زبون الذي TRC_IDClient يساوي 1 يعني يظهر لي فقط حركة زبون 1
لا تقل ان هذا شيء كبير ففي الاصل هو اتى من شيء صغير