ورود

View Full Version : جمع مقادیر یک فیلد



matinebi
شنبه 31 مرداد 1388, 04:00 صبح
آیا راهی هست که بدون نیاز به حلقه for جمع مقادیر یک فیلد رو بدست بیارم

با تشکر

vcldeveloper
شنبه 31 مرداد 1388, 04:51 صبح
جمع مقادیر یک فیلد در رکوردهای مختلف را با استفاده از دستور SUM مربوط به SQL می تونید بدست بیارید.

matinebi
شنبه 31 مرداد 1388, 05:55 صبح
کدی که نوشتم

var sumf:Integer;
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT SUM(gh_kharid)AS mojodi FROM kala');
ADOQuery1.open;

sumf:=ADOQuery1.FieldByName('mojodi').AsInteger;
Edit1.Text:=IntToStr(sumf);
اروری که میده

ADOQuery1: Field 'no_ghate' not found.

(no_ghate=فیلد اول جدولم)

Mr_Mahmoud
شنبه 31 مرداد 1388, 11:02 صبح
با سلام ميشه بگيد اين كار رو تو اكسس چه طوري انجام بديم؟

behzad_dr
شنبه 31 مرداد 1388, 11:33 صبح
دوست خوب من ; این سوالتون خیلی عجیبه . شما احتمالا منظورتون اینه که بانک داده شما توی access طراحی شده و می خوان sum یه فیلدی رو تویه یه تیبلی بدست بیارید .. قرار نیست این کد رو شما تویه اکسس بنویسین شما این کدرو تویه برنامه تون می نویسید در واقع به query این دستور رو می دین . بعد هم اونو اجرا می کنید .. مقدار نتیجه دقیقا در یه فیلدی موقت تویه query بدست میاد .

Mr_Mahmoud
شنبه 31 مرداد 1388, 11:38 صبح
سلام
بله من بانكم اكسسه يك فيلد دارم به نام هزينه ها
هر كاربر هر چقدر هزينه كنه تو اون فيلد ذخيره ميشه.حالا من ميخام جمع هزينه ها رو بدون حلقه بدست بيارم

vcldeveloper
شنبه 31 مرداد 1388, 18:42 عصر
اروری که میده(no_ghate=فیلد اول جدولم)
وقتی در SELECT شما نامی از فیلد no_ghate آورده نشده، دلفی از کجا آن را پیدا کنه؟!

matinebi
شنبه 31 مرداد 1388, 20:20 عصر
وقتی در SELECT شما نامی از فیلد no_ghate آورده نشده، دلفی از کجا آن را پیدا کنه؟!


خوب مشکل من هم همینه چون من اسمی از فیلد no_ghate در select نیاوردم چرا روی این فیلد ارور میده اصلا مگه این فیلد رو هم چک میکنه؟؟

البته فیلد gh_kharid من nvarchar هست شاید باید حتمی از نوع integer باشد؟؟؟

behzad_dr
شنبه 31 مرداد 1388, 20:26 عصر
سلام ; شما قبلا احتمالا از همین adoquery استفاده کردی که تویه اون فیلد (نامبرده) ذکر شده .
بنابراین شما قبل از اینکه از این استفاده کنی اونو close کنید

ADOQuery1.close;
در مرحله دوم اگه باز هم خطا داشتید از یه adoqueryدیگه استفاده کنید .. البته من یقین دارم شما دارین اون داده رو تویه شاید یه فرم دیگه با یه dbedit نمایش میدین ./

matinebi
شنبه 31 مرداد 1388, 20:47 عصر
سلام ; شما قبلا احتمالا از همین adoquery استفاده کردی که تویه اون فیلد (نامبرده) ذکر شده .
بنابراین شما قبل از اینکه از این استفاده کنی اونو close کنید

ADOQuery1.close;
در مرحله دوم اگه باز هم خطا داشتید از یه adoqueryدیگه استفاده کنید .. البته من یقین دارم شما دارین اون داده رو تویه شاید یه فرم دیگه با یه dbedit نمایش میدین ./

درسته دوست عزیز من در یک فرم دیگه برای ویرایش فیلد ها از dbedit هم استفاده میکنم ولی چرا این مشکل پیش میآد تا زمانی که فرم دوم هنوز اکتیو نیست ؟

behzad_dr
شنبه 31 مرداد 1388, 20:51 عصر
اگر close کردین و باز هم نشد ، از یه query دیگه استفاده کنید /