我正在使用从Oracle DB中提取的tableau 10.5自定义Sql,并想查询图片中的五个表。我在这里看到过一些帖子,内容涉及如果两个值相同,则基于最大日期提取数据,但我要查找的内容有所不同。我要选择:
mnemonic,
problem_id,
create_date,
env_name
但是当助记符,problem_id和env_name都相同时,我只想提取具有最新create_date的记录。在我的实际场景中,我还想选择其他值,但为了简化起见,我将其遗漏了。 1
我将不胜感激任何帮助或指出正确的方向!
谢谢, 亚历克斯
答案 0 :(得分:0)
如果我理解正确,那么您想选择这些列:
只需使用LEFT JOIN和GROUP BY即可获得所需的内容:
SELECT TABLE4.MNEMONIC,
TABLE3.PROBLEM_ID,
MAX(TABLE1.CREATE_DATE) CREATE_DATE,
TABLE2.ENV_NAME
FROM TABLE1
LEFT JOIN TABLE2
ON (TABLE1.ENVIRONMENT_ID = TABLE2.ID)
LEFT JOIN TABLE3
ON (TABLE1.PROBLEM_ID = TABLE3.ID)
LEFT JOIN TABLE4
ON (TABLE1.MNEMONIC = TABLE4.ID)
GROUP BY TABLE4.MNEMONIC,
TABLE3.PROBLEM_ID,
TABLE2.ENV_NAME;
P / s:您应该检查您的桌子设计。列的名称使查看者有些困惑。如果我理解不正确,那么您就可以加入并从多表中获取信息。