ایس کیو ایل میں مجموعی حساب کتاب انجام دینا
خلاصہ
سال ماہ یونٹوں میں رقم کی مجموعی قیمت کا حساب ایس کیو ایل کا استعمال کرتے ہوئے لگایا جاتا ہے۔
عملیہ پڑتال ورژن
معاون ایس کیو ایل پیش کار ورژن
- 2005
- 2008
- 2008 آر 2
ایس کیو ایل سرور ورژن چیک کریں
- 2005
- 2008
- 2008 آر 2
آزمائشی ونڈوز ورژن
- 2008
- 2008 آر 2
مادہ
عام طور پر، ڈیٹا بیس استعمال کرتے وقت، رقم کی رقم کا حساب اکثر مخصوص سال اور مہینے کے لئے کیا جاتا ہے، لیکن ایسے معاملات بھی ہیں جہاں اس مہینے کی رقم پچھلے مہینے کے ڈیٹا کی بنیاد پر شامل کی جاتی ہے جیسے رقم اور انوینٹری۔ آپ ذخیرہ شدہ یا پروگرامکے لحاظ سے مجموعی قدروں کا حساب لگا سکتے ہیں، لیکن فی الحال میں صرف ایس کیو ایل میں حساب کرنا چاہتا ہوں۔
نیچے ایک جدول ہے، جس میں ہر سال اور مہینے کے لئے مقرر کردہ رقم ہے:
سال ماہ کی | رقم | مجموعی | سال یونٹ کی رقم مجموعی |
---|---|---|---|
201004 | 100 | صفر | صفر |
201005 | 200 | صفر | صفر |
201006 | 150 | صفر | صفر |
201007 | 300 | صفر | صفر |
201008 | 50 | صفر | صفر |
201009 | 220 | صفر | صفر |
201010 | 240 | صفر | صفر |
201011 | 280 | صفر | صفر |
201012 | 400 | صفر | صفر |
201101 | 450 | صفر | صفر |
201102 | 520 | صفر | صفر |
201103 | 120 | صفر | صفر |
201104 | 140 | صفر | صفر |
201105 | 450 | صفر | صفر |
201106 | 270 | صفر | صفر |
201107 | 640 | صفر | صفر |
201108 | 340 | صفر | صفر |
201109 | 230 | صفر | صفر |
201110 | 280 | صفر | صفر |
201111 | 320 | صفر | صفر |
201112 | 350 | صفر | صفر |
201201 | 230 | صفر | صفر |
201202 | 270 | صفر | صفر |
201203 | 350 | صفر | صفر |
ایس کیو ایل میں ایک بیچ میں اپ ڈیٹ کرنے کے لئے، "پچھلے مہینے کی رقم" کو "پچھلے مہینے کی رقم" کے طور پر استعمال کرنے کے بجائے، آپ اس شرط کو منسلک کرکے مجموعی قدر کا حساب لگا سکتے ہیں کہ ماضی کی رقم ہدف سال اور مہینے سے جمع کی جاتی ہے۔
update 金額集計Test
set 金額累計 = 累計
from
(
select
A.年月,
sum(B.金額) as 累計
from 金額集計Test A
left outer join 金額集計Test B
on B.年月 <= A.年月
group by A.年月
) as C
where 金額集計Test.年月 = C.年月
جب آپ مندرجہ بالا ایس کیو ایل پر عمل درآمد کرتے ہیں، تو مجموعی قدر "رقم مجموعی" میں درج کی جاتی ہے۔
سال ماہ کی | رقم | مجموعی | سال یونٹ کی رقم مجموعی |
---|---|---|---|
201004 | 100 | 100 | صفر |
201005 | 200 | 300 | صفر |
201006 | 150 | 450 | صفر |
201007 | 300 | 750 | صفر |
201008 | 50 | 800 | صفر |
201009 | 220 | 1020 | صفر |
201010 | 240 | 1260 | صفر |
201011 | 280 | 1540 | صفر |
201012 | 400 | 1940 | صفر |
201101 | 450 | 2390 | صفر |
201102 | 520 | 2910 | صفر |
201103 | 120 | 3030 | صفر |
201104 | 140 | 3170 | صفر |
201105 | 450 | 3620 | صفر |
201106 | 270 | 3890 | صفر |
201107 | 640 | 4530 | صفر |
201108 | 340 | 4870 | صفر |
201109 | 230 | 5100 | صفر |
201110 | 280 | 5380 | صفر |
201111 | 320 | 5700 | صفر |
201112 | 350 | 6050 | صفر |
201201 | 230 | 6280 | صفر |
201202 | 270 | 6550 | صفر |
201203 | 350 | 6900 | صفر |
اس کے علاوہ، اگر آپ ہر سال مجموعی قدر کو ری سیٹ کرنا چاہتے ہیں، تو آپ مشروط اظہار کو تبدیل کرکے اس کا حساب لگا سکتے ہیں۔
update 金額集計Test
set 年度単位金額累計 = 累計
from
(
select
A.年月,
sum(B.金額) as 累計
from 金額集計Test A
left outer join 金額集計Test B
on B.年月 <= A.年月
and B.年月 >= case
when cast(right(A.年月, 2) as int) >= 4 then left(A.年月, 4) + N'04'
else cast(cast(left(A.年月, 4) as int) - 1 as nvarchar(4)) + N'04'
end
group by A.年月
) as C
where 金額集計Test.年月 = C.年月
جب آپ مندرجہ بالا ایس کیو ایل پر عمل درآمد کرتے ہیں تو مجموعی قدر "سالانہ رقم مجموعی" میں درج کی جاتی ہے۔
سال ماہ کی | رقم | مجموعی | سال یونٹ کی رقم مجموعی |
---|---|---|---|
201004 | 100 | 100 | 100 |
201005 | 200 | 300 | 300 |
201006 | 150 | 450 | 450 |
201007 | 300 | 750 | 750 |
201008 | 50 | 800 | 800 |
201009 | 220 | 1020 | 1020 |
201010 | 240 | 1260 | 1260 |
201011 | 280 | 1540 | 1540 |
201012 | 400 | 1940 | 1940 |
201101 | 450 | 2390 | 2390 |
201102 | 520 | 2910 | 2910 |
201103 | 120 | 3030 | 3030 |
201104 | 140 | 3170 | 140 |
201105 | 450 | 3620 | 590 |
201106 | 270 | 3890 | 860 |
201107 | 640 | 4530 | 1500 |
201108 | 340 | 4870 | 1840 |
201109 | 230 | 5100 | 2070 |
201110 | 280 | 5380 | 2350 |
201111 | 320 | 5700 | 2670 |
201112 | 350 | 6050 | 3020 |
201201 | 230 | 6280 | 3250 |
201202 | 270 | 6550 | 3520 |
201203 | 350 | 6900 | 3870 |