【发布时间】:2019-03-07 07:20:09
【问题描述】:
以下是我当前的代码。我不确定最好的方法是修改它以获得我需要的结果。
SELECT
T1.SC,
T1.AN,
T1.DOFS_DATE,
T2.M_ID,
T3.OPDT,
T4.MARKER,
T5.E_DTE,
T5.E_TME,
T5.E_PST_DTE,
T5.E_AMT,
T5.E_NAR_O,
T5.E_NAR_T
FROM E_Base.AR_MyTable T1
LEFT JOIN E_Base.Translation T2
ON T1.SC = T2.SC
AND T1.AN = T2.AN
LEFT JOIN E_Base.BA T3
ON T2.M_ID = T3.M_ID
LEFT JOIN E_Base.APF T4
ON T3.M_ID = T4.M_ ID
AND MARKER = 54
LEFT JOIN U_DB.TEH_201804 T5
ON T2.M_ID = T5.M_ID
AND T1.DOFS_DATE = T5.E_PST_DTE
QUALIFY ROW_NUMBER() OVER (PARTITION BY T2.M_ID ORDER BY T2.ID_END_DATE DESC, T3.E_END_DATE DESC) = 1
上面的代码有效。但是,这是我需要帮助的 T5 上的最后一个左连接。
在 T1 中,每个 M_ID 都分配了它自己的 DOFS_DATE,它可以是一年中的任何日期,我想要来自 T5 U_DB.TEH_201804 的数据作为匹配日期。但是,5 U_DB.TEH_201804 仅与 2018 年 4 月有关。有 12 个表具有相同的数据库(201804、201805、201806 等),它们都具有完全相同的列,但与一年中的不同月份相关。
理想情况下,我想将 T5 中的列从左连接一次,但搜索数据库中的所有 12 个表以返回日期对应的数据。
我在考虑 UNION,但不确定如何使用它。
任何帮助将不胜感激!
谢谢
【问题讨论】:
-
为什么你有 12 个表,其列完全相同但与一年中的不同月份相关,而不是一个表(可以按月分区)?
-
这超出了我的范围。我所知道的是在月底数据被归档到一个单独的表中。让我的生活变得更加艰难!