delphi4arab منتديات دلفي للعرب
جمع بيانات في التقرير عن طريق group - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : جمع بيانات في التقرير عن طريق group (/showthread.php?tid=4330)



جمع بيانات في التقرير عن طريق group - format82 - 05-07-2012

السلام عليكم
لدي جدول بها بيانات (الاسم والدائن والمدين )
كيف جمع الدائن والمدين عن طريق group بحيث يكون هنالك مجموعين (المجموع الاول يكون لفترة المحدد والمجموع الثاني يكون للفترة الذي يكون قبله وايضا يكون محددة ) الفترة الاولي يكون الارصدة الحالية والفترة الثانية يكون ارصدة مرحلة من فترة سابقة
انا استطعت جمع الفترة المحددة ولكن لم استطيع للفترة السابقة
هذا هو الكود
كود :
select name_emp,sum(daen) as sdaen,sum(mden) as smden from t_daenen where date_e between :p1 and :p2 group by name_emp
ولكم جزيل الشكر


جمع بيانات في التقرير عن طريق group - لؤي - 05-07-2012

وعليكم السلام

محاولة
كود :
select name_emp,sum(daen) as sdaen,sum(mden) as smden from t_daenen where date_e between :p1 and :p2 and date_e >:p2 and date_e <:p1 group by name_emp



جمع بيانات في التقرير عن طريق group - format82 - 06-07-2012

مشكور علي الرد
ولكن sdaen و smden سيكون لاي تاريخ قبل ام بعد

اذا قمت بايجاد القيم عن طريق (2 ) ADOQuery منفصلين هل من طريقة ان اربط بين الحقول في QuickReport


جمع بيانات في التقرير عن طريق group - format82 - 10-07-2012

قمت بعدة محاولات وتوصلت الي كود ولكنه يعطي رسالة خطا
كود :
ADOQuery2.SQL.Add('select name_emp,sum(daen) as sdaen,sum(mden) as smden from t_daenen where date_e between :p1 and :p2 and name_emp in (select name_emp,sum(daen) as sdaen1,sum(mden) as smden1 from t_daenen where date_e between :p3 and :p4 group by name_emp'+')'+'group by name_emp');

رسالة خطا

Only one expression can be specified in the select list when the subquery is not introduced with EXISTS


جمع بيانات في التقرير عن طريق group - لؤي - 10-07-2012

format82 كتب :
كود :
ADOQuery2.SQL.Add
إن لم تنجح قم بكتابة إستعلامك على أكثر من سطر أو حاول إستعمال
PHP كود :
ADOQuery2.SQL.TEXT:='جملة الإستعلام' 

أو ضع محاولتك لنعمل عليها سويا


جمع بيانات في التقرير عن طريق group - format82 - 10-07-2012

مشكور اخي علي الرد
انا اعمل في برنامج محاسبي هناك شاشة اسمه الدائنون فيها عديد من الاسماء وهذه الاسماء تتكرر كثيرا
عرض الاسماء في شكل group بالاضافة الي مجموع الدائن ومجموع المدين في فترة المحددة واضافة لذلك ايضا مجموع الدائن ومجموع المدين لفترة سابقة وايضا محددة كل ذلك يستخرج من جدول واحد وهو جدول الدائنون
وهذه هي محاولتي

كود :
ADOQuery2.Close; ADOQuery2.SQL.Clear ; ADOQuery2.SQL.Add('select name_emp,sum(daen) as sdaen,sum(mden) as smden from t_daenen where date_e between :p1 and :p2 and name_emp in (select name_emp,sum(daen) as sdaen1,sum(mden) as smden1 from t_daenen where date_e between :p3 and :p4 group by name_emp'+')'+'group by name_emp'); ADOQuery2.Parameters.ParamByName('p1').Value := datetostr(datetimepicker1.Date) ; ADOQuery2.Parameters.ParamByName('p2').Value := datetostr(datetimepicker2.Date) ; ADOQuery2.Parameters.ParamByName('p3').Value := datetostr(datetimepicker17.Date) ; ADOQuery2.Parameters.ParamByName('p4').Value := datetostr(datetimepicker18.Date) ; ADOQuery2.Open; if ADOQuery2.Recordcount=0 then ShowMessage('áÇ ÊæÌÏ ÈíÇäÇÊ ãÊæÝÑÉ Ýí åÐÇ ÇáãÏì') else begin Form47.QuickRep1.PreviewModal; end;