【问题标题】:Using derived table in join (Teradata)在连接中使用派生表 (Teradata)
【发布时间】:2019-05-16 23:07:34
【问题描述】:

我正在尝试弄清楚如何使以下查询起作用。 Teradata 告诉我它找不到派生表GLT_Yearly。本质上,我正在尝试将左连接中的GLT_Yearly 操作为BD,然后将其自行连接。我正在尝试做的事情是可能的还是有更好的方法去做?谢谢!

SELECT
FROM
  (SELECT
   FROM
     (SELECT
      FROM
        (SELECT
         FROM
         )AS GLT0
      )AS GLT1
   )AS GLT_Yearly
LEFT JOIN
  (SELECT
   FROM GLT_Yearly) AS BD 
   ON Account = BD.Account

【问题讨论】:

  • Semms 您想要实现诸如 Teradata 不支持的 Lateral Join 之类的东西。如果您可以显示/解释您真正想要计算的内容,则可能有一种更简单的方法来获得此结果,例如使用 OLAP 函数。
  • @dnoeth 接缝对于 teradata 和横向连接是正确的......很可能您必须将其重写为一个相关的子查询并使用 EXISTS 类型的方法,但没有示例数据和预期结果很难确定

标签: sql teradata


【解决方案1】:

使用 CTE:

WITH GLT_Yearly as (
      SELECT
      FROM (SELECT
            FROM (SELECT
                  FROM
                 ) GLT0
           ) GLT1
     )
SELECT 
FROM GLT_Yearly LEFT JOIN
     GLT_Yearly BD 
     ON GLT_Yearly.Account = BD.Account;

子查询的别名可用于标识列。但是,它不能用作对子查询本身的第二个引用。为此,请使用 CTE>

【讨论】:

  • 谢谢!!这正是我所需要的。
猜你喜欢
  • 2016-09-18
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 2014-12-28
  • 2023-03-05
  • 2011-10-30
  • 1970-01-01
  • 2016-01-18
相关资源
最近更新 更多