PDA

View Full Version : عنوان مناسبي نميتونم پيدا كنم!! (جمع مقدار قبلي با فعلي)



ebrahimv
دوشنبه 29 فروردین 1390, 21:12 عصر
من از جدولم مقادير شكل سمت راست رو در ميارم حال چگونه شكل سمت چپ رو درست كنم؟
با دستور Sql

محمد سلیم آبادی
دوشنبه 29 فروردین 1390, 21:22 عصر
عنوانش running totals هست.
در اینجا به یک راه حل اشاره کردم اگر SQL Server اتون 2005 به بالاست:
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

یا:


SELECT *,(SELECT SUM(col) FROM table_name WHERE col <= T.col) AS running_total FROM table_name AS T;

ebrahimv
سه شنبه 30 فروردین 1390, 00:42 صبح
خيلي ممنون

لينكي كه فرستاديد هموني بود كه ميخواستم ولي برا بيشتر از 100 ركورد خطا ميده دليلش چي هست؟
كد دوم هم درست كار ميكنه
كدوم يك از اينا سرعتش بيشتره اولي يا دومي ؟
البته اگه اولي برا بيشتر از 100 ركورد كار كنه

محمد سلیم آبادی
سه شنبه 30 فروردین 1390, 04:41 صبح
آخر query قبل از سمی کلن بنویسید

option (maxrecursion 0)

سرعت cte رو روی داده های زیاد امتحان نکردم ولی subquery سرعت بسیار پایینی روی داده های زیاد خواهد داشت.