View Full Version : سوال: جمع مقدار های یک فیلد
sobhangh
چهارشنبه 23 بهمن 1387, 10:43 صبح
من می خواهم که مقدار های یک فیلد را با هم جمع کنم. منظورم اینست که می خواهم مثلا پول یک نفر با پول نفر دیگر جمع شود در ضمن از پارادوکس استفاده کرده ام. هر توضیحی لازم بود بگویید می دهم و لطفا پاسخ کامل دهید
delphiprog3000
چهارشنبه 23 بهمن 1387, 10:54 صبح
من می خواهم که مقدار های یک فیلد را با هم جمع کنم. منظورم اینست که می خواهم مثلا پول یک نفر با پول نفر دیگر جمع شود در ضمن از پارادوکس استفاده کرده ام. هر توضیحی لازم بود بگویید می دهم و لطفا پاسخ کامل دهید
با سلام . دوست من. لطفا دقیقتر موضوع را مطرح نمایید که هدف شما از این کار چیه؟
در مورد جمع ستونها در سایت مطالبی فراوانی موجوده.
که به چندین روش میتوانید این کار را انجام دهید هم با دستور Sql و هم با گذاشتن حلقه و جمع کردن مقادیر آنها.
sum field را در سایت جستجو نمایید.
bmanfy
چهارشنبه 23 بهمن 1387, 11:43 صبح
Select Sum(Fileld) from Tbl
GroupBy Fileld
sobhangh
چهارشنبه 23 بهمن 1387, 18:33 عصر
با سلام . دوست من. لطفا دقیقتر موضوع را مطرح نمایید که هدف شما از این کار چیه؟
در مورد جمع ستونها در سایت مطالبی فراوانی موجوده.
که به چندین روش میتوانید این کار را انجام دهید هم با دستور Sql و هم با گذاشتن حلقه و جمع کردن مقادیر آنها.
sum field را در سایت جستجو نمایید.
شرمنده عزیز نبود گشتم. خب واسه جمع یک فیلد دو رکورد متفاوت می خوام. خب لازمم شده برای همون دلیلی که نوشتم. راستی میشه روش با حقله ی تکرار را توضیح بدید
accpascal
چهارشنبه 23 بهمن 1387, 18:54 عصر
خب واسه جمع یک فیلد دو رکورد متفاوت می خوام. خب لازمم شده برای همون دلیلی که نوشتم. راستی میشه روش با حقله ی تکرار را توضیح بدید
دوست عزیز اگر می خواهی جمع رکوردهای خاصی را محاسبه کنی بصورت زیر می توانی این کارراانجام دهی
select sum(field) as sumf from yourdb
where (your filter)
اگر می خواهی از حلقه استفاده کنی به این صورت دستوراتت را بنویس
var sum:integer
table1.first;
while table1 not eof do
begin
if table1.fieldbyname(yourfield).value=yourfilter
then sum:=sum+fieldbyname(yourfield).value;
table1.next;
end;
delphiprog3000
چهارشنبه 23 بهمن 1387, 20:01 عصر
با سلام.
این نمونه هم شبیه به کد دوستمون میباشد.
with Qry_cash_sell do
begin
for I := 0 to Recordset.RecordCount-1 do
begin
sum:=sum+FieldByName('price_get').AsInteger;
//ShowMessage(inttostr(sum));
end;
end;
if Qry_cash_sell.RecNo>0 then
begin
btn_search.Enabled:=false;
lbl_total_price.Caption:=inttostr(sum);
sum:=0;
end
موفق باشید.............
sobhangh
جمعه 25 بهمن 1387, 16:56 عصر
با سلام.
این نمونه هم شبیه به کد دوستمون میباشد.
with Qry_cash_sell do
begin
for I := 0 to Recordset.RecordCount-1 do
begin
sum:=sum+FieldByName('price_get').AsInteger;
//ShowMessage(inttostr(sum));
end;
end;
if Qry_cash_sell.RecNo>0 then
begin
btn_search.Enabled:=false;
lbl_total_price.Caption:=inttostr(sum);
sum:=0;
end
موفق باشید.............
ببخشید کد قبلی ( در حلقه ی تکرار) که کار نکرد مال شما هم طویل و غیر واقعی میشه.
دلیل چیه؟
Modernidea
شنبه 26 بهمن 1387, 12:27 عصر
ببخشید کد قبلی ( در حلقه ی تکرار) که کار نکرد مال شما هم طویل و غیر واقعی میشه.
دلیل چیه؟
سلام
شما بايد بعد از دستور begin اول، table را به اولين سطر هدايت كني. مثل اين دستور:
AdoTable1.First;
تا از اول شروع به جمع كردن كنه. اگر اين كار رو نكني، ممكنه كه جدول به سطر ديگه اي به جز سطر اول اشاره كنه و اين باعث ميشه كه اون سطر دوبار در جمع فيلدها استفاده بشه.
اميدوارم متوجه شده باشي.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.