PDA

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