我通过创建两个查询来填充表。第一个将2列的不同组合拉出到临时表中。第二个在临时表上与另一个左连接。这是查询:
SELECT DISTINCT Name, ID
INTO #tmpID
FROM Staging.Name
SELECT *
FROM Perf.Hours w
LEFT JOIN #tmpID wr ON w.Name = wr.Name
我想创建一个查询,使我可以确认Perf.Hours表的计数正确。当我分别运行上述两个查询时,Staging.Name中的计数与Perf.Hours表中的计数匹配。我正在努力创建一个查询而不必创建tmp表。有任何想法吗?
这是我最近的尝试:
SELECT count(*)
from (
SELECT DISTINCT Name, ID
FROM Staging.Name
LEFT JOIN Perf.Hours wr ON w.Name = wr.Name
) AS Staging
但是计数根本不匹配。
答案 0 :(得分:1)
您可以将第一个组合为“表表达式”。例如:
SELECT count(*)
FROM Perf.Hours w
LEFT JOIN (
SELECT DISTINCT Name, ID
FROM Staging.Name
) wr ON w.Name = wr.Name
您还可以将它们组合在一起,将第一个作为CTE(公用表表达式),如下所示:
with
wr as (
SELECT DISTINCT Name, ID
FROM Staging.Name
)
SELECT count(*)
FROM Perf.Hours w
LEFT JOIN wr ON w.Name = wr.Name