メンバー別に年々増加していることを示すスクリプトを作成しようとしています。しかし、私たちはいつもメンバーを追加したり削除したりしているので、LYは存在しないかもしれません。私が使ったスクリプトは次のとおりです。今年と前年を合計するとゼロ除算を避ける
select
DBA as 'Retailor',
sum(case when TranDate between @start and @end then TranAmount else 0 end)/
sum(case when TranDate between dateadd(year, -1, @start) and dateadd(year, -1, @end) then TranAmount else 0 end) -1
しかし、私はゼロで除算することになります。私は以前の答えで見つけたがまだ同じ問題があるnullif(0,0)でelse 0を置き換えようとしました。どんな支援も大歓迎です。
(sum(case when TranDate between @start and @end then TranAmount else 0 end)/
sum(case when TranDate between dateadd(year, -1, @start) and dateadd(year, -1, @end)
then TranAmount
end) - 1
と仮定すると:
私は、私はあなたのケースでは、最も簡単な方法がある
「の合計(ケースTranDate DATEADD(年、-1、@start)とDATEADD(年、-1の間、 @end)then TranAmount else 0 end)-1 "は0で、その除算の結果はどうなりますか? – FLICKER