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-1404, Jelsoft Enterprises Ltd.