View Full Version : مشكل با دستور sum
DlphIran
پنج شنبه 09 مهر 1388, 13:57 عصر
سلام من براي بدست آوردن جمع ستوني يكي از فيلدهام از sum استفاده مي كنم ، مشكل اينجاست كه اگه بصورت يه select عادي بنويسمش حاصل جمع درست نشون ميده ، اما اگه با Where باشه و ستونهاي ديگه جدول ، فيلدهاي ستون مشخص شده رو جمع نمي زنه بلكه مبلغ هر فيلد رو نشون ميده.
اينم چند خط خلاصه اش :
select a,cod,nam,dy,m,sum(m)
group by a,cod,nam,dy,m
يا حتي يه خط whereهم كه اضافه كنم، جمع نمي زنه .
در واقع مي خوام بعد از هر جستجو جمع كل ستون مبلغ (m) رو محاسبه كنه .
درباره سوالم جستجو هم زياد كردم اما چندتا تاپيك بود كه به نتيجه نرسيده بود.
MShirzadi
پنج شنبه 09 مهر 1388, 14:15 عصر
سئوالت خیلی واضح نبود شما Query رو تلگرافی ننویس، کامل بزار ببینیم چه خبره
اما اون چیزی که من فهمیدم شما باید از Group by استفاده کنی در غیر این صورت به Exception بر خواهی خورد و این هم یه چیز کاملا منطقی هست
mojtaba.baghban
پنج شنبه 09 مهر 1388, 15:38 عصر
از اونجا که دستور where قبا از group by میاد واسه اعمال شرط بعد از group by از having استفاده می کنی به شکل زیر
select a,cod,nam,dy,m,sum(m) as s
group by a,cod,nam,dy,m
having s>150
DlphIran
شنبه 11 مهر 1388, 15:33 عصر
من يه قسمت از جستجوهاي برنامه ام رو گذاشتم ، بعد از اجراي كد زير مي خوام جمع حاصل جستجو رو بصورت يه lable نشون بده . من روش قبلي دوستم رو امتحان كردم اما حاصل جمع نشون نمي ده ،بلكه مبلغ رديف جاري جدول رو نشون ميده بصورت يه lable
with adoquery5 do
begin
sql.Clear;
sql.Add('select * from par');
sql.Add('where nam=:a');
parameters.ParamByName('a').Value:=edit5.Text;
execsql;
active:=true;
end;
منتظر راهنمايي دوستان هستم
DlphIran
یک شنبه 12 مهر 1388, 16:26 عصر
منتظر راهنماييتون هستم
MOJTABAATEFEH
یک شنبه 12 مهر 1388, 22:46 عصر
دوست عزيز وقتي شما از Group by استفاده مي كني اگر تفاوتي در فيلدهايي كه در Group by نوشتي نباشد يك سطر در نظر گرفته مي شوند اما اگر يكي از آنها متفاوت باشد يك سطر جديد نشان مي دهد احتمال زياد مشكل شما ناشي از اين مورد است اگر سطرها كاملا (از لحاظ فيلدهاي موجود در Group by يكي باشند ) جواب درست مي دهد براي اين مورد مثلا شما مي خواهيد از فاكتورهاي صادر شده يك گزارش تهيه كنيد براي اين مورد بهتر است فيلدهايي را در گزارش استفاده كنيد كه در يك فاكتور مشابه هستند مثل (شماره فاكتور ، نام خريدار ، تاريخ فاكتور ، نام شركت خريدار و يا هر فيلد مشابه ديگري) چون در اين صورت در جواب به ازا هر فاكتور يك سطر ايجاد مي شود و تابع Sum نيز كارش را بدرستي انجام مي دهد
موفق باشي
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.