我有一张Sales
桌子和一张Period
桌子。
销售表
+--------------+-------------+
| Country_Code | Period_Code |
+--------------+-------------+
| CH | MAI_18 |
| CH | JUN_18 |
| NO | 2020-01-21 |
| NO | 2020-01-21 |
+--------------+-------------+
周期表
+--------------+-------------+
| Country_Code | Period_Code |
+--------------+-------------+
| NO | 200121 |
| NO | 200122 |
+--------------+-------------+
加入这 2 个表时出现以下错误。
下面是我使用的sql。根据我的理解,由于我NO
在第二行中给出了国家过滤器,所以它应该首先执行第二行,然后只在NO
国家上进行连接。但在内部,它CH
也在考虑导致以下 sql 失败的国家。
SELECT DISTINCT SAL.COUNTRY_CODE,PER.PERIOD_CODE
FROM (SELECT * FROM MYSCHEMA.SALES WHERE COUNTRY_CODE in('NO')) SAL
JOIN MYSCHEMA.PERIOD PER
ON SAL.COUNTRY_CODE=PER.COUNTRY_CODE
AND TO_CHAR(TO_DATE(SAL.PERIOD_CODE,'YYYY-MM-DD'),'YYMMDD') = PER.PERIOD_CODE
ORDER BY 1
我使用了CTE
也表现相同的方式。可能有一些解决方案。如果有人可以帮助我让 sql 运行没有任何错误,我将不胜感激。