【问题标题】:How to use a table value in a custom SQL - Tableau Prep如何在自定义 SQL 中使用表值 - Tableau Prep
【发布时间】:2021-10-29 00:12:10
【问题描述】:

在 Tableau Prep 中,我有一个要导入 Oracle 数据库的输出表。

在该输出表中,有一列 (file_date) 带有日期值(例如:“2021-01-01”)。 所有行的日期值相同。

输出表:

enter image description here

我需要编写一个自定义 SQL 查询(在 Tableau Prep 中),以检查我的 Oracle 表是否已经包含日期 = '2021-01-01' 的任何行。如果是这样,在我导入新数据之前需要删除所有行。

表_1:

enter image description here

类似:

DELETE FROM table_1 WHERE date_column = '2021-01-01';

检查后会发现第一行的日期='2021-01-01'并删除该行。

Table_1 之后:

enter image description here

由于每次出现新文件时日期都会更改,因此无法在查询中手动输入日期。 有什么方法可以在自定义 SQL 查询中使用我的表中的值?

我知道 Tableau Desktop 允许创建参数,但这在 Tableau Prep 中不可用。

【问题讨论】:

  • 欢迎来到 SO 社区,社区将帮助您解决问题。但也有一定的期待。请花几分钟时间拨打Tour 并查看How to Ask。以文本形式发布表定义 (ddl) 和示例数据 - 无图像。为此,除了每次都更改查询之外,还有很多其他方法。但是你怎么知道日期是什么?这是你桌子上最早的日期吗?最新的?它在参数表上吗?你从会计部门得到比尔的备忘录?其他的?否则,建议如何自动执行此操作是不切实际的。
  • @Belayer 在输出中(在 Tableau Prep 中),所有行的日期都相同。

标签: plsql tableau-api


【解决方案1】:

如果输出都是相同的日期,那么输入数据也必须如此。没有理由检查现有数据值。由于删除时找不到匹配记录不会引发错误,因此无需检查 - 只需删除即可。

delete 
  from table_1 
 where date_column =  
       (select date_column 
          from import_table_1 
          fetch first 1 row only  
       );    

              

【讨论】:

  • 此查询将在 Tableau Prep 中(作为自定义 SQL 查询),所以我的问题是如何引用 Tableau 中的数据/表?在 Tableau 中(据我所知)不可能执行 SELECT whatever_column from import_table,因为它无法像普通 SQL 查询那样识别表或列。
  • 我完全不知道什么是 Tableau Prep。但是,如果它 import_table 是一个已定义的表、一个视图、一个内联视图/CTE,它应该接受它。如果不是,则在 SQL 中非常非常有限。这是查询的基本形式。你真的试过了吗?结果如何?
  • Tableau Prep 允许使用 SQL,但方式非常有限,这也是我发布此问题的原因。无论如何,谢谢你,我只需要继续搜索不同的选项。
  • 你真的试过了吗?这一个非常基本的查询。唯一相对较新的部分是仅获取第一行。如果该方法不起作用,请尝试 rownum (一个更旧的版本)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 2021-07-26
  • 2022-07-08
  • 1970-01-01
  • 2020-12-11
  • 2015-12-21
  • 2015-06-29
相关资源
最近更新 更多