View Full Version : میانگین گرفتن بین دوتاریخ
a-azad
سه شنبه 31 اردیبهشت 1387, 07:02 صبح
سلام.من میخوام میانگین بین دو تاریخ بگبرم.به این صورت که بیاد بین دوتا تاریخ تعداد رکوردها بشماره.بعد یک مقدار مشخص تقسیم براین تعداد کنه.چطور این کد بنویسم.
SYNDROME
سه شنبه 31 اردیبهشت 1387, 07:13 صبح
به این شکل عمل کن
ADO.SQL.Text := 'Select Count(*) CountRec From Tbl_Test Where TDate Between '+QuotedStr(Edit_Start.Text)+' And '+QuotedStr(Edit_End.Text);
ADO.Open;
ADO.FieldByName('CountRec').Asinteger;
تعداد رکوردها داخل CountRec ریخته می شود.
موفق باشید
a-azad
شنبه 01 تیر 1387, 10:53 صبح
سلام.می خوام علاوه بر اینکه تعداد رکوردها بین دوتاریخ بدست می آورد .یک شرط دیگه هم باشه اونم مقدار فیلدمشخص برابر مقدار textشده در یک edit باشه یعنی یک شرط دیگه هم اضافه کنم.
SYNDROME
شنبه 01 تیر 1387, 19:58 عصر
ADO.SQL.Text := 'Select Count(*) CountRec From Tbl_Test Where TDate Between '+QuotedStr(Edit_Start.Text)+' And '+QuotedStr(Edit_End.Text);
ADO.Open;
ADO.FieldByName('CountRec').Asinteger;
سلام.می خوام علاوه بر اینکه تعداد رکوردها بین دوتاریخ بدست می آورد .یک شرط دیگه هم باشه اونم مقدار فیلدمشخص برابر مقدار textشده در یک edit باشه یعنی یک شرط دیگه هم اضافه کنم.
خوب کد را به شکل زیر تغییر بده.
ADO.SQL.Text := 'Select Count(*) CountRec From Tbl_Test Where TDate Between '+QuotedStr(Edit_Start.Text)+' And '+QuotedStr(Edit_End.Text)+' And Code='+ QuotedStr(Edit_Code.Text);
ADO.Open;
ADO.FieldByName('CountRec').Asinteger;
هر چند تا دستور دیگر را هم کی می خواهید با And به شرط های زیر اضافه کنید.
موفق باشید
a-azad
سه شنبه 04 تیر 1387, 11:24 صبح
سلام.حالا چطور این مقدار recordcount داخل edit یا متغییر بریزم؟
delphiprog3000
سه شنبه 04 تیر 1387, 11:33 صبح
با سلام.
کافیه ادیت یا متغییر مورد نظر را به این خاصیت انتساب دهید. به این صورت:
ADO.SQL.Text := 'Select Count(*) CountRec From Tbl_Test Where TDate Between '+QuotedStr(Edit_Start.Text)+' And '+QuotedStr(Edit_End.Text)+' And Code='+ QuotedStr(Edit_Code.Text);
ADO.Open;
if not isEmpty then
begin
edit1.text:=ADO.FieldByName('CountRec').Asinteger;
end;
موفق باشید................
a-azad
سه شنبه 04 تیر 1387, 13:41 عصر
سلام.یعنی من یک فیلد به اسم reccountباید توی جدول ایجاد کنم.درسته؟
a-azad
سه شنبه 04 تیر 1387, 14:37 عصر
سلام.من وقتی این دستور تو اس کیو ال می نویسم مشکلی نداره recordcount برمی گرداند ولی وقتی این دستور تو دلفی می نویسم مقدار عددی صفر برمی گرداند.
مشکل کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
dkhatibi
سه شنبه 04 تیر 1387, 19:04 عصر
edit1.text:=ADO.FieldByName('CountRec').Asinteger;
باید AsString به جای AsInteger به کار برید.
با F8 برنامه را چک کنید.
ضمنا شما می خواهید میانگین بگیرید یا تعداد
برای میانگین گیری دستوذ AVG را به جای Count به کار برید.
delphiprog3000
سه شنبه 04 تیر 1387, 21:49 عصر
با سلام . در ادامه صحبت دوستمان به این صورت عمل کنید:
ADO.SQL.Text := 'Select avg(*) CountRec From Tbl_Test Where TDate Between '+QuotedStr(Edit_Start.Text)+' And '+QuotedStr(Edit_End.Text)+' And Code='+ QuotedStr(Edit_Code.Text);
ADO.Open;
if not isEmpty then
begin
edit1.text:=inttostr(ADO.FieldByName('CountRec').A sinteger);
end;
موفق باشید............
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.