0

我正在尝试获取下表Tableau

第 XX 周(前一周) X 月(前一个月) 年初至今
20,000 100,000 400,0000

我正在尝试将前一周与上个月进行比较。到目前为止,我得到了以下信息:

首先,我得到了整周结束的那一天,即星期日,如下所示

(MAX(IF DATEPART('weekday',DATE([Order Date & Time]))=1 and date([Order Date & Time]) <TODAY() 
then DATE([Order Date & Time]) 

结尾))

接下来,我尝试Sales - Last full week使用以下内容:

IF DATEDIFF('week',DATE([Order Date & Time]),[Last Complete Sunday]) = 0 THEN COUNTD([Sales]) END

我收到以下错误:Cannot mix aggregate and non-aggregate arguments with this function

问题出在datediff()因为当也尝试在没有 IF 的情况下自行工作时,它仍然给我同样的错误。我不明白为什么,因为我正在转换[Order Date & Time]为 Date 并且Last Complete Sunday是一个日期。

作为参考使用:https : //onenumber.biz/blog-1/2021/6/8/how-to-compare-last-full-week-to-previous-full-week-in-tableau 有人可以帮忙吗?

4

1 回答 1

0

通过将 IF 语句放在 COUNT 中可以解决问题。

COUNTD(
 IF DATEDIFF('week',DATE([Order Date & Time]),[Last Complete Sunday]) = 0 THEN [Sales] END
)

如果它与 if 语句不匹配,它将返回 NULL 并且不会在您的不同计数中。

于 2021-07-30T22:26:25.090 回答