【发布时间】:2021-08-20 02:06:24
【问题描述】:
您好,我之前在此查询 SQL JOIN WITH NESTED QUERY 上获得了帮助,感谢 @GordonLinoff,它运行良好。我的问题是我需要添加更多列,我认为这可以通过嵌套查询来完成,但我没有得到与原始查询相同的 10 个值。我认为这将是一个嵌套查询的原因是因为将任何列添加到下面的查询中需要我将它添加到 group by 子句中,这会解释我的结果。对此嵌套查询的任何帮助都会非常有帮助。这是运行良好并为我提供所需结果的查询
SELECT rmd.issue_id,
MAX(CASE WHEN as_of_date = '2021-08-08' THEN CURRENT.member_impact END) AS prev_member_impact,
MAX(CASE WHEN as_of_date = '2021-08-15' THEN CURRENT.member_impact END) AS curr_member_impact
FROM lod.ism_issue_summary_hist_wky CURRENT INNER JOIN
lod.rmd_iss_remed_summary rmd
ON CURRENT.issue_id = rmd.issue_id
WHERE as_of_date IN ('2021-08-08', '2021-08-15')
GROUP BY rmd.issue_id
HAVING MAX(CASE WHEN as_of_date = '2021-08-08' THEN CURRENT.member_impact END) <> MAX(CASE WHEN as_of_date = '2021-08-15' THEN CURRENT.member_impact END )
我尝试了类似的方法,但无法正常工作:
SELECT
ISSUE_ID,
ISSUE_TITLE,
ISM_STATUS,
ISSUE_OWNER_ORG,
ISSUE_OWNER,
ISSUE_APPROVER
FROM Lod.Ism_Issue_Summary_Hist_Wky
WHERE Issue_Id IN
( WORKING QUERY ABOVE)
我需要将这些数据列添加到结果中的工作查询
ISSUE_ID,
ISSUE_TITLE,
ISM_STATUS,
ISSUE_OWNER_ORG,
ISSUE_OWNER,
ISSUE_APPROVER
| ISSUE ID | PREV_MEMBER_IMPACT | CURR_MEMBER_IMPACT |
|---|---|---|
| ISSUE-00020021 | Y | N |
任何帮助将不胜感激。
【问题讨论】:
-
忘了提到除了 issue_id 之外的列来自 Lod.Ism_Issue_Summary_Hist_Wky 表。我想要的 Issue_id 是从原始查询派生的。
-
假设你想要
MAX(other_col1),对于每个as_of_date,使用与之前解决方案相同的方法。 -
我需要的列数据来自最新的 as_of_date 2021-08-15。
-
你好@JonArmstrong 你是说为需要的每一列添加一个 Max() 吗?
-
您的
working query拥有GROUP BY rmd.issue_id。您要添加的列位于rmd表中。在不了解您的表格的更多信息的情况下,我无法假设这些列在GROUP BY术语上是functionally dependent,这只是SELECT它们所必需的。如果没有这些细节,我们仍然可以使用聚合(如MIN或MAX等)将这些列添加到SELECT列表中,就像SELECT列表中的其他列一样。您能否提供问题中缺少的表格详细信息?