PDA

View Full Version : سوال: جمع رکوردهای بک فبلد تا شش ماه قبل با لینک



ashkan1234
چهارشنبه 19 تیر 1392, 18:21 عصر
باسلام!
دوستان چطور میشه این روال رو با دستورات لینک پیاده سازی کرد؟
فرض کنید 4 فیلد دارم در دیتا بیس
1-قیمت
2-تعداد
3-تاریخ (فقط ماه و سال)
4-مجموع شش ماه
حالا میخوام وقتی کاربر مثلا یک دکمه ای رو فشرد این عملیات محاسبه بشه:
وقتی رکوردهاش 6 تا شد در رکورد ششم اینکارا انجام بشه و مجموعشون ریخته بشه در فیلد مجموع شش ماه!
مثلا از برج دو تا برج هفت(خود ماه ششم هم حسابه)بیاد قیمت هر ماه رو با تعداد اون ماه ضرب کنه و مجموعشون رو نمایش بده!
بعدش واسه دفعه بعد که رکوردها شد 12تا نباید هر 12تا رو حساب کنه٬بلکه باید از 6 تا 12 رو حساب کنه!
(قیمت همون ماه * تعداد همون ماه)+(قیمت یک ماه قبل*تعداد یک ماه قبل)+...
چطوری میشه اینکارو کرد؟!!!!
لینک کار کردم!
با ForEach باید بگردم از خود رکورد تا پتج تای قبل عایا؟!!
اگه ممکنه یکم برام تشریح کنید!
سپاسگذازم!:لبخند::لبخند::لبخ ند::لبخند:

ashkan1234
پنج شنبه 20 تیر 1392, 09:22 صبح
دوستان اگر اطلاعاتی در این مورد دارید راهنمایی بفرمایید...

gholami146
پنج شنبه 20 تیر 1392, 09:29 صبح
سئوال شما خیلی مبهمه
لطفا ابتدا صورت مسئله رو چک نویس و سپس پاک نویس کنید !

ashkan1234
پنج شنبه 20 تیر 1392, 10:11 صبح
سئوال شما خیلی مبهمه
لطفا ابتدا صورت مسئله رو چک نویس و سپس پاک نویس کنید !

کجاش مبهمه بطور کامل تشریح کردم!
اگه جاییش مبهمه بفرمایید توضیح میدم!
میخوام بعد از ثبت رکورد ششم توسط کاربر٬جمع فیلد قیمت رو تا پتج رکورد قبل از خودش رو حساب کنه و بریزه توی فیلد مجموع رکورد
کل کار همینه!

alias136790
پنج شنبه 20 تیر 1392, 14:16 عصر
یه راهش استفاده از Take و Skip ، لینک هست.(دیگه راست و درستش با خودت)
یه راهش استفاده مستقم از Sql تو لینک هست:
var lq = new acount_dbDataContext(); var SumPayment = lq.ExecuteQuery<decimal>("select sum(Price*CountMonth) " +
"from Cash where Date between '" + fromDate + "' and '" + toDate + "'").Sum();

Mahmoud.Afrad
شنبه 22 تیر 1392, 18:12 عصر
میتونی از گروهبندی استفاده کنی.
مثال زیر رو ببین:

class MyClass
{
Int16 month;

public Int16 Month
{
get { return month; }
set { month = value; }
}

decimal cost;

public decimal Cost
{
get { return cost; }
set { cost = value; }
}
}
private void button2_Click(object sender, EventArgs e)
{
List<MyClass> lst = new List<MyClass>()
{
new MyClass() { Month = 1 , Cost = 1400},
new MyClass() { Month = 2 , Cost = 300},
new MyClass() { Month = 7 , Cost = 200},
new MyClass() { Month = 9 , Cost = 700}
};

var query = from item in lst
group item by (item.Month <= 6) into g
select new
{
TimePeriod = (g.Key ? "شش ماهه اول" : "شش ماهه دوم"),
SumCost = g.Sum(i => i.Cost)
};

dataGridView1.DataSource = query.ToList();
}

(البته اینجا قسمت های فارسی را اونطوری که هست نشون نمیده. کپی پیست کنی متوجه میشی)