sql - 我无法从以下语句中检索确切数据
问题描述
SELECT ST_CODE.ST_NAME "CURRENT ST",
ST_CODE.ST_NAME "PREVIOUS ST" FROM FLT_TBL
LEFT JOIN MT_ST_CODE ON
FLT_TRN_TBL. PIS_DB_VER = MT_ST_CODE.VERSION AND
FLT_TRN_TBL. CRNT_ST_CODE = MT_ST_CODE.ST_CODE
LEFT JOIN MT_ST_CODE ON
FLT_TRN_TBL. PIS_DB_VER = MT_ST_CODE.VERSION AND
FLT_TRN_TBL. PREV_ST_CODE = MT_ST_CODE.ST_CODE
解决方案
有几个错误:
FLT_TRN_TBL
是未知别名ST_CODE
是未知别名- 你必须给别名
MT_ST_CODE
您的查询应如下所示:
SELECT M1.ST_NAME "CURRENT ST",
M2.ST_NAME "PREVIOUS ST"
FROM FLT_TBL FLT_TRN_TBL
LEFT JOIN MT_ST_CODE M1 ON
FLT_TRN_TBL.PIS_DB_VER = M1.VERSION AND
FLT_TRN_TBL.CRNT_ST_CODE = M1.ST_CODE
LEFT JOIN MT_ST_CODE M2 ON
FLT_TRN_TBL.PIS_DB_VER = M2.VERSION AND
FLT_TRN_TBL.PREV_ST_CODE = M2.ST_CODE
或者尝试使用 group by 而不是多个连接,如下所示:
SELECT FLT_TRN_TBL.PIS_DB_VER
Max(case when FLT_TRN_TBL.CRNT_ST_CODE = MT_ST_CODE.ST_CODE then MT_ST_CODE.ST_NAME end) as "CURRENT ST",
Max(case when FLT_TRN_TBL.PREV_ST_CODE = MT_ST_CODE.ST_CODE then MT_ST_CODE.ST_NAME end) as "PREVIOUS ST"
FROM FLT_TBL FLT_TRN_TBL
LEFT JOIN MT_ST_CODE
ON FLT_TRN_TBL.PIS_DB_VER = MT_ST_CODE.VERSION
Group by FLT_TRN_TBL.PIS_DB_VER
干杯!!
推荐阅读
- javascript - React js:音频元素 src 正在 setState 上更新,但 audioRef 没有
- c# - 获取热门推文
- reactjs - 如何使用地图在 React 中渲染 base64 图像?
- typescript - 无法在 Bitbucket Pipeline 上构建 Typescript 应用程序
- arrays - 打印存储行长度> 20的字符数组时获取乱码值
- django - haarcascade_frontalface_deflult.xml 在 cPanel 上的实时 Django 网站上无法正常工作
- c++ - 在 c++ 中使用 double 的 for 循环中出现了一个奇怪的问题
- python - 在列表中按索引搜索多个字符串
- javascript - 如何使用javascript刷新页面直到元素在硒中消失
- html - 可以在 Chrome 中精美再现的 CSS 在 Firefox 中很脏