جمع کرنے والی مصنوعات

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

نمونہ کوائف

صرف ایک جدول کی وضاحت کریں، صرف سال، مہینوں اور دلچسپی کے ساتھ ڈیٹا.

-- テーブル定義
declare @利息マスタ table 
(
  年月 nvarchar(6)
 ,利息 decimal(4, 2)
)

-- サンプルデータ挿入
insert @利息マスタ
          select N'201501', 1.05
union all select N'201502', 1.03
union all select N'201503', 1.02
union all select N'201504', 1.10
union all select N'201505', 1.02
union all select N'201506', 1.06
union all select N'201507', 1.07
union all select N'201508', 1.04
union all select N'201509', 1.06
union all select N'201510', 1.07
union all select N'201511', 1.03
union all select N'201512', 1.02

-- 確認
select * from @利息マスタ

جمع کرنے والی مصنوعات

مصنوعات کا مجموعہ "قوت نما فعل" اور "لاگرتھمک فنکشن" کو جمع کرکے حاصل کیا جاسکتا ہے۔ ایس کیو ایل اس طرح لگتا ہے:

-- 集計
select exp(sum(log([利息]))) from @利息マスタ
-- 結果:1.73968081491318

یہ ایک ایسی شکل ہے جس کا ادراک "قوت نما فعل" اور "لاگرتھمک فنکشن" کی نوعیت سے کیا جاسکتا ہے۔

سب سے پہلے، لاگرتھمک فنکشن کا خلاصہ فارمولے کے ذریعہ "لاگ ایکس + لاگ وائی = لاگ(ایکس * وائی)" ہے۔ قوت نما فارمولا "ای لاگ کس = ایکس**" لاگرتھمک افعال کے مجموعے سے حاصل کردہ فارمولے کا اطلاق کرتے ہوئے "ای لاگ(ایکس*وائی) =ایکس * وائی" دیتا ہے۔ (ایکس * وائی * ... (کا حصہ اعداد و شمار کی تعداد ہے)

صفر اور منفی خط و کتابت

چونکہ لاگرتھمک فنکشن 0 سے کم یا برابر نہیں ہو سکتا، اس لیے اگر جمع ہدف 0 سے کم یا اس کے برابر ہو تو ایک نقص واقع ہوتا ہے۔ 0 سے نیچے نمبروں کو جگہ دینے کے لیے، درج ذیل ایس کیو ایل استعمال کریں:

-- 集計(ゼロ、負対応)
select
  case
    when min(abs([利息])) = 0 then 0
    else
       exp(sum(log(abs(nullif([利息], 0)))))
     * round(0.5 - count(nullif(sign(sign([利息]) + 0.5), 1)) % 2, 0)
  end as [利息合計]
from @利息マスタ
-- 結果:1.73968081491318