2020-09-28 09:27发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我面临以下问题:在P... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我面临以下问题:在PostGreSQL DB的UDT中,我正在两个表(例如A.column1 = B.column1)之间创建经典的等联接,当我使用LaunchPad查询时,它将转换联接 在"内部联接"中。
如何避免这种转变?
感谢您的帮助。
你好,
首先,谢谢您的回答。
我不确定我的问题是由PostGreSQL的行为引起的onyl,让我尝试用一个具体的例子来解释它。
对于这种情况,我正在使用您所说的OUTER JOIN,以便为两个表检索最大数量的值。 LaunchPad生成的请求返回以下语句(我尽力简化了):
选择* FROM rh.eqrem右外连接((选择 SO.w_agent_bo。* FROM SO.w_agent_bo 在哪里 SO.w_agent_bo。 cod_coll in('17001')和(CASE当'*'='@'THEN时SO.w_agent_bo.dt_deb_doss 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END)> = SO.w_agent_bo.dt_deb_doss 并且(如果'*'='@'然后,则为例SO.w_agent_bo.dt_fin_doss-间隔" 1天" 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END) )W_AGENT_BO ON(W_AGENT_BO.cod_clasremun = rh.eqrem.cod_clasremun 和W_AGENT_BO.cod_eqremun = rh.eqrem.cod_eqremun 和W_AGENT_BO.cod_typremun = rh_eq(' '@'THEN W_AGENT_BO.dt_deb_doss 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END)和(CASE当'*'='@'THEN W_AGENT_BO.dt_fin_doss-间隔'1天'当'*'='*'THEN date_trunc('day',current_date ) ELSE to_date('*','DD/MM/YYYY')END)> = rh.eqrem.dat_debut AND(condition1)AND(condition2))
,我想发表以下声明:
选择* FROM rh.eqrem右外连接((选择 SO.w_agent_bo。* FROM SO.w_agent_bo 在哪里 SO.w_agent_bo。 cod_coll in('17001')和(CASE当'*'='@'THEN时SO.w_agent_bo.dt_deb_doss 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END)> = SO.w_agent_bo.dt_deb_doss 并且(如果'*'='@'然后,则为例SO.w_agent_bo.dt_fin_doss-间隔" 1天" 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END) )W_AGENT_BO ON(W_AGENT_BO.cod_clasremun = rh.eqrem.cod_clasremun 和W_AGENT_BO.cod_eqremun = rh.eqrem.cod_eqremun 和W_AGENT_BO.cod_typremun = rh_eq(' '@'THEN W_AGENT_BO.dt_deb_doss 当'*'='*'THEN date_trunc('day',current_date) ELSE to_date('*','DD/MM/YYYY')END)和(CASE当'*'='@'THEN W_AGENT_BO.dt_fin_doss-间隔'1天'当'*'='*'THEN date_trunc('day',current_date ) ELSE to_date('*','DD/MM/YYYY')END)> = rh.eqrem.dat_debut)在(condition1)AND(condition2)
主要更改是在请求结束时,我不希望将" WHERE"条件包含在RIGHT OUTER JOIN内,因为这会修改我的condition1和condition2的行为。
这就是为什么我想使用" ="而不是INNER JOINS或OUTER JOINS保持初始等式联接的原因。或者您是否有任何想法像前面的示例所示"拆分" WHERE?
非常感谢您的参与。
R。
最多设置5个标签!
你好,
首先,谢谢您的回答。
我不确定我的问题是由PostGreSQL的行为引起的onyl,让我尝试用一个具体的例子来解释它。
对于这种情况,我正在使用您所说的OUTER JOIN,以便为两个表检索最大数量的值。 LaunchPad生成的请求返回以下语句(我尽力简化了):
选择*在哪里 )W_AGENT_BO ON(W_AGENT_BO.cod_clasremun = rh.eqrem.cod_clasremun 和(CASE当'*'='@'THEN W_AGENT_BO.dt_fin_doss-间隔'1天'
FROM
rh.eqrem右外连接(
(选择
SO.w_agent_bo。*
FROM SO.w_agent_bo
SO.w_agent_bo。 cod_coll in('17001')
和(CASE当'*'='@'THEN时SO.w_agent_bo.dt_deb_doss
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)> = SO.w_agent_bo.dt_deb_doss
并且(如果'*'='@'然后,则为例SO.w_agent_bo.dt_fin_doss-间隔" 1天"
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)
和W_AGENT_BO.cod_eqremun = rh.eqrem.cod_eqremun
和W_AGENT_BO.cod_typremun = rh_eq(' '@'THEN W_AGENT_BO.dt_deb_doss
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)
当'*'='*'THEN date_trunc('day',current_date )
ELSE to_date('*','DD/MM/YYYY')END)> = rh.eqrem.dat_debut AND(condition1)AND(condition2)
)
,我想发表以下声明:
选择*在哪里 )W_AGENT_BO ON(W_AGENT_BO.cod_clasremun = rh.eqrem.cod_clasremun 和(CASE当'*'='@'THEN W_AGENT_BO.dt_fin_doss-间隔'1天'
FROM
rh.eqrem右外连接(
(选择
SO.w_agent_bo。*
FROM SO.w_agent_bo
SO.w_agent_bo。 cod_coll in('17001')
和(CASE当'*'='@'THEN时SO.w_agent_bo.dt_deb_doss
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)> = SO.w_agent_bo.dt_deb_doss
并且(如果'*'='@'然后,则为例SO.w_agent_bo.dt_fin_doss-间隔" 1天"
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)
和W_AGENT_BO.cod_eqremun = rh.eqrem.cod_eqremun
和W_AGENT_BO.cod_typremun = rh_eq(' '@'THEN W_AGENT_BO.dt_deb_doss
当'*'='*'THEN date_trunc('day',current_date)
ELSE to_date('*','DD/MM/YYYY')END)
当'*'='*'THEN date_trunc('day',current_date )
ELSE to_date('*','DD/MM/YYYY')END)> = rh.eqrem.dat_debut)在(condition1)AND(condition2)
主要更改是在请求结束时,我不希望将" WHERE"条件包含在RIGHT OUTER JOIN内,因为这会修改我的condition1和condition2的行为。
这就是为什么我想使用" ="而不是INNER JOINS或OUTER JOINS保持初始等式联接的原因。或者您是否有任何想法像前面的示例所示"拆分" WHERE?
非常感谢您的参与。
R。
一周热门 更多>