View Full Version : استفاده از Sum در Query
nightHunter
شنبه 06 بهمن 1386, 17:34 عصر
سلام
لطفا در مورد استفاده از Sum جهت جمع کردن مقادیر یک فیلد عددی در Query و نمایش حاصل اون در یک editBox توضیح بدید .
متشکرم .
dkhatibi
شنبه 06 بهمن 1386, 19:31 عصر
ابتدا کوئری زیر را بنوسیسد.
adoquery1.close;
adoquery1.text:='select sum(nomreh) as jam from yourtable'
adoquery1.open;
سپس
با متد fieldByName کوپتری به فیلد دسترسی بیلبید.
var
mysum:integr;
begin
mysum:=adoquery1.fieldbyname('jam').asinteger;
edit1.text:=inttostr(mysum);
با فرض اینکه اعداد صحیح هستند و گرنه AsFloat را به کاربرید.
nightHunter
شنبه 06 بهمن 1386, 20:33 عصر
سلام
خیلی ممنونم ، لطف کردید .
bee_seda
یک شنبه 07 بهمن 1386, 00:46 صبح
منظورتون از (az jame) چییه فرم کلی دستور اینه اگه اشتباه نکنم
select sum(nomre) from student
*******
adoquery1.text:='select sum(nomreh) as jam from your table'
و من در query چیزی به نام fieldbyname ندارم من با sql کارمیکنم
متشکر میشم اگه بیشتر توضیح بدین .
SYNDROME
یک شنبه 07 بهمن 1386, 08:56 صبح
منظورتون از (az jame) چییه
دوست عزیز as Jame برای نامگذاری نتیجه فیلد Sum به کار رفته است.
و من در query چیزی به نام fieldbyname ندارم من با sql کارمیکنم
دستوز فوق برای ADOQuery استفاده می شود و اگر دقت کنید سوال در تالار Delphi مطرح شده است و جزء دستورات SQL نیست.
موفق باشید
dkhatibi
یک شنبه 07 بهمن 1386, 11:34 صبح
کوئری را به همین نحو ارا کنید ببینید مشکلی پیش میاد یا نه.
bee_seda
دوشنبه 08 بهمن 1386, 15:33 عصر
کد من :
adoquery2.close;
adoquery2.sql.text:='select sum(nomreh) as jame from t2';
adoquery2.open
*****
mysum:=adoquery2.fieldbyname('jame').asinteger;
edit1.text:=inttostr(mysum);
و خطای زیر
adoquery2: field 'jame' not found
من که کلا گیج شدم :افسرده:
ممنون میشم اگه راهنمایی کنید
Vahid_moghaddam
دوشنبه 08 بهمن 1386, 18:02 عصر
احتمالا قبل از خوندن مقدار فیلد، query رو close کردین.
dkhatibi
دوشنبه 08 بهمن 1386, 20:37 عصر
به املای کلمات نوشته شده به خصوص Jame هم در هر دو حالت توجه کنید.
Touska
دوشنبه 08 بهمن 1386, 21:23 عصر
آقای مولایی :
AdoQuery2.Close;
AdoQuery2.Sql.Clear;
AdoQuery2.Sql.Add := 'Select Sum(Nomreh) As Jame From T2';
AdoQuery2.Open;
نوع خواندن همونه.
موفق باشید :)
bee_seda
پنج شنبه 11 بهمن 1386, 13:09 عصر
ممنون آقای سرباززاده مشکلم حل شد ولی یه مشکل جدید که توی یک تاپیک جدید میگذارمش .
ممنون از راهنمایی همه دوستان
welcome_r
یک شنبه 14 بهمن 1386, 16:44 عصر
با سلام
من در ارسال پارامتر به ADoquery مشکل دارم . در قسمت sql وقتی از اعداد صحیح استفاده میکنم مشکلی ندارم ولی وقتی از پارامتر استفاده میکنم پیغام خطا میده سورس اون هم
unit acc1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DBNavigator1: TDBNavigator;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
ADOTable1: TADOTable;
ADOTable1AC_MAJOR: TIntegerField;
ADOTable1AC_MINOR: TIntegerField;
ADOTable1AC_OYY: TIntegerField;
ADOTable1AC_OMM: TIntegerField;
ADOTable1AC_ODD: TIntegerField;
ADOTable1AC_STATUS: TIntegerField;
ADOTable1AC_CYY: TIntegerField;
ADOTable1AC_CMM: TIntegerField;
ADOTable1AC_CDD: TIntegerField;
ADOTable1AC_TSTBAL: TBCDField;
ADOTable1AC_TMPDBT: TBCDField;
ADOTable1AC_TMPCRD: TBCDField;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
major:integer;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
major:=strtoint(edit1.Text);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Prepared:= True;
adoquery1.Open;
end;
end.
در قسمت sql هم نوشتم select ac_major,ac_minor from account where ac_major:=major
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.