PDA

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



sadaf_
سه شنبه 05 دی 1391, 20:23 عصر
سلام
چطوری می شه رکورد جاری را با رکورد بعدی جمع کرد؟
خود sql باید یک تابع برای این کار داشته باشه
مطالبی هم در این بخش بود اما کارایی لازم را نداره و خیلی کند عمل می کنه
مثلا
1-->1
2-->3
3-->6
ممنونم

محمد سلیم آبادی
سه شنبه 05 دی 1391, 20:35 عصر
سلام
چطوری می شه رکورد جاری را با رکورد بعدی جمع کرد؟
خود sql باید یک تابع برای این کار داشته باشه
مطالبی هم در این بخش بود اما کارایی لازم را نداره و خیلی کند عمل می کنه
مثلا
1-->1
2-->3
3-->6
ممنونم
الان بر اساس مثالی که زدین ستون سمت راستی حاوی مقدار رکورد جاری هست و ستون سمت چپی حاوی مقدار رکورد بعدی هست درسته؟
فکر نمیکنین مثالتون یه کوچولو اشکال داشته باشه؟ نباید به این شکل باشه؟
1-->2
2-->3
3-->6
6-->...
....

sadaf_
سه شنبه 05 دی 1391, 20:56 عصر
با عرض معذرت
مثال :
4 رکورد داریم در هر رکورد
و در فیلد خاص به اسم Number مقادیری وجود داره
Number
1
5
2
3
حالا می خوام جمع رکورد جاری را بریزم در رکورد بعدی به اسم sumRecord
Number -------- sumRecord
1---------------------------1 در اینجا 1 خودش هست
6---------------------------5 در اینجا 5 با فیلد sumRecord رکورد قبلی که 1 باشه جمع شده
8---------------------------2 در اینجا 2 با فیلد sumRecord رکورد قبلی که 6 باشه جمع شده
11-------------------------3 در اینجا 3 با فیلد sumRecord رکورد قبلی که 8 باشه جمع شده
اگر خوب توضیح ندادم بگید باز هم توضیح می دم
ممنون

محمد سلیم آبادی
سه شنبه 05 دی 1391, 22:25 عصر
اکی، شما مجموعش (مجموع مقادیر سطر های جاری به قبل) رو در اون ستون نوشته بودین که من اشتباها فکر کردم مقدار ردیف بعدی رو نوشتین... .


مطالبی هم در این بخش بود اما کارایی لازم را نداره و خیلی کند عمل می کنه
من دقیق نمیدونم منظورتون کدوم مطالب هست. به هر حال امید وارم این تکنیک براتون (http://www.30sharp.com/article/13/303/11/%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-running-totals-%D8%AA%D9%88%D8%B3%D8%B7-recursive-cte.aspx) اومد داشته باشه.

sadaf_
چهارشنبه 06 دی 1391, 13:29 عصر
اکی، شما مجموعش (مجموع مقادیر سطر های جاری به قبل) رو در اون ستون نوشته بودین که من اشتباها فکر کردم مقدار ردیف بعدی رو نوشتین... .


من دقیق نمیدونم منظورتون کدوم مطالب هست. به هر حال امید وارم این تکنیک براتون (http://www.30sharp.com/article/13/303/11/%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-running-totals-%D8%AA%D9%88%D8%B3%D8%B7-recursive-cte.aspx) اومد داشته باشه.

روشتون فوق العادست
خیلی عالی بود
فقط در رکوردهای بالای 2000 تا سرعت پایینه
این روش بهتر از این هم عمل می کنه؟
ممنون

Arash_janusV3
چهارشنبه 06 دی 1391, 22:28 عصر
سرعت پایین این روش به خاطر محاسبه row_number
هستش بهتره row_number در یک view
انجام بدید و سپس از view یک select به این روش اضافه کنید