delphi4arab منتديات دلفي للعرب

نسخة كاملة : جمع بيانات في التقرير عن طريق group
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
لدي جدول بها بيانات (الاسم والدائن والمدين )
كيف جمع الدائن والمدين عن طريق 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
ولكم جزيل الشكر
وعليكم السلام

محاولة
كود :
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
مشكور علي الرد
ولكن sdaen و smden سيكون لاي تاريخ قبل ام بعد

اذا قمت بايجاد القيم عن طريق (2 ) ADOQuery منفصلين هل من طريقة ان اربط بين الحقول في QuickReport
قمت بعدة محاولات وتوصلت الي كود ولكنه يعطي رسالة خطا
كود :
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
format82 كتب :
كود :
ADOQuery2.SQL.Add
إن لم تنجح قم بكتابة إستعلامك على أكثر من سطر أو حاول إستعمال
PHP كود :
ADOQuery2.SQL.TEXT:='جملة الإستعلام' 

أو ضع محاولتك لنعمل عليها سويا
مشكور اخي علي الرد
انا اعمل في برنامج محاسبي هناك شاشة اسمه الدائنون فيها عديد من الاسماء وهذه الاسماء تتكرر كثيرا
عرض الاسماء في شكل 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;