Sku*_*udd 4 sql t-sql sql-server-2005
这个问题可能有一个明显的答案,但我花了很长时间才得到它。
考虑以下查询:
选择 *
FROM 报告 AS r
JOIN 报告值 AS rv ON rv.report_id = r.report_id
JOIN 指标 AS m ON m.metric_id = rv.metric_id
其中 r.report_id 不在(
选择不同的report_id
来自排除报告
)
在此查询中,exclude_report是以类似方式构建的视图。
现在发生的情况是查询需要非常长的时间来执行,大概是因为子查询正在父查询中的每一行上执行。然而,我发现没有其他可行的方法来做到这一点。
哦,伟大的SQL向导,请指教。我确实需要一种在 SQL 中完成这一切的方法,我将在 SSRS 中使用它。
不同的可能会杀了你,当使用 in 时,你不需要在子查询中使用不同的
这是否更好?
SELECT *
FROM reports AS r
JOIN reportvalues AS rv ON rv.report_id = r.report_id
JOIN metrics AS m ON m.metric_id = rv.metric_id
WHERE NOT EXISTS (SELECT 1
FROM exclude_report e
WHERE e.report_id = r.report_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12634 次 |
| 最近记录: |