在Tableau中创建日历

时间:2016-08-31 16:02:56

标签: sql-server calendar tableau tableau-server

所以我有一个SQL数据表,它只是接下来200年的日历。我通过与任务表的任务完成日期匹配的日历表上的日期字段将其加入到有意义的“任务数据”中。我正在使用它在Tableau中构建一个日历,它看起来很棒......起初:

enter image description here

上面的图片不包含对所有者的过滤,并显示所有日期,即使任务计数为0。

但是,当我过滤一个没有任务可以计算的人时,这些日子就会消失为空:

enter image description here

如果我将鼠标悬停在白色方块上,细节下拉列表中没有显示任何内容,请注意我已经失去了几天......我从8/5到8/9。

我理解为什么会发生这种情况(因为数据在过滤后的视图中根本不存在),但必须有一种方法可以让日显示,但只需显示0代表任务计数一个null。我已经创建了一个自定义查询,并在task_Id和Task_Owner上使用了isnull,但我仍然得到相同的视图。除了在db中创建虚拟数据作为占位符(我反对),我不知道如何实现这一点。

我希望有人在那里努力奋斗并取得成功,可以帮助我。我觉得Tableau中的zn(查找)功能可能会有所帮助,但我似乎无法以实现目标的方式应用它。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

Have you tried this:

 ifnull([Task Count],0)

This would change any nulls to zeros.

Or save typing 6 whole characters and use

ZN([Task Count])

for the same effect

答案 1 :(得分:0)

你很幸运。

对于大多数数据类型,Tableau会从查询结果中发现维度的值。所以一般来说,它不会知道为缺席值留下一列。但对于日期,它知道可能的值,因此可以表现得更好。

也就是说,它可以知道星期日应该有一个列,即使没有具有该值的数据行。

因此,对于列架上的WEEKDAY(日期)字段,右键单击并选择“显示缺失值”。您应该看到缺少的列。同样的技巧也适用于直方图箱。你应该几乎总是检查直方图的选项。

这可以填充您的行和列以完成范围,但不会显示您的月份日期。如果正确设置表calc分区,则可以使用index()进行修复。