答案 0 :(得分:0)
在Oracle中,您将使用以下内容,在case语句中可能不完全正确:
Select
Site,
sum(value * (case (date_transaction > trunc(sysdate, 'MM') then 1 else 0 end))
volume_current_month
from myTable
where date_transaction between add_months(trunc(sysdate,'MM'),-1) and sysdate
group by site
上个月使用另一个案例陈述和ADD_MONTHS
或多或少相同。
答案 1 :(得分:0)
在Tableau中有两种方法可以执行此操作:
第一道。
Under Analysis --> Total --> Add All SubTotals .
第二种方式:
将计算字段Total_event
创建为:
WINDOW_SUM(SUM([Event Count]))
将Window_sum计算为COMPUTE USING EVENT NAME
。
答案 2 :(得分:0)
在画面中 - >创建一个计算字段 - >
//这是上个月的
if [date] >= DATE("01" +"-" + (Month(TODAY())-1) +"-" + YEAR(TODAY()))
and [date] <= DATE("31" +"-" + (Month(TODAY())-1) +"-" + YEAR(TODAY()))
//if the month has 30 or 28 days it will check that there is no 31 and return null
then
sum([Value])
end
//当月 - &gt;
if Month([date]) = Month(TODAY()) then
sum([Value])
end
您将在2个字段中返回上个月的总和和当前月份的总和,然后您可以根据需要使用它们。
在sql端,您可以使用
上个月 - &gt;
select sum(value) from table_name t where DATE_PART('month',t.date)=DATE_PART('month',TIMESTAMPADD(mm,-1,GETDATE()))
当前月份 - &gt;
select sum(value) from table_name t where DATE_PART('month',t.date)=DATE_PART('month',GETDATE()))
答案 3 :(得分:0)
如果您可以使用sql并且您实际上需要上个月而不仅仅是EventName总结的所有月份,那么您可以使用LAG。我假设您使用EventName进行求和,并且只需要当前的EventName和之前的EventNAme
WITH Summed
AS
(
SELECT * ,
LAG(EventCount) OVER (Partition BY EventName ORDER BY trialmonth) as PrevEvent
FROM dbo.Table1
)
SELECT *,
SUM(PrevEvent+EventCount) AS SummedCount
FROM summed
GROUP BY Site
,TrialMonth
,EventName
,EventCount
, PrevEvent
这将产生这样的输出
Site TrialMonth EventName EventCount PrevEvent SummedCount
12101 2001-10-15 Actual Count 4 NULL NULL
12101 2001-10-15 Projected Count 8 NULL NULL
12101 2001-11-15 Actual Count 6 4 10
12101 2001-11-15 Projected Count 9 8 17
12101 2001-12-15 Actual Count 0 6 6
12101 2001-12-15 Projected Count 10 9 19