정말 잘 작동하는 쿼리가 있습니다. 그러나 users_in_this_country
이 1보다 큰 경우 필터를 추가하려고합니다. users_in_this_country > 1
을 WHERE에 추가하는 것을 알고 있습니다. 그러나 괄호 안에 추가하면 유효하지 않은 열이라고 말하면서 괄호 바깥에 추가하면 같은 것입니다. 이것은 아마도 멍청하고 쉽게,하지만 내가 뭘보고 지나치는거야? 감사! 당신이 그것을 참조 할 수 없습니다이COUNT 기준으로 필터링
WITH CTE AS (
SELECT u.ContactName
,cu.[User ID]
,c.Name
,c.ID
,cu.[Foreign Table]
,count(*) OVER (PARTITION BY c.ID) AS user_in_this_country
FROM dbo.Country AS c
INNER JOIN dbo.CountryUser AS cu ON c.ID = cu.[Foreign ID]
INNER JOIN dbo.UserColder AS u ON cu.[User ID] = u.ID
WHERE EXISTS (
SELECT *
FROM CountryUser AS cu2
WHERE cu2.[Foreign ID] = cu.[Foreign ID]
AND cu2.[User ID] <> cu.[User ID]
AND cu.[Foreign Table] = 'Country')
)
SELECT *
FROM CTE
WHERE user_in_this_country > 1
'user_in_this_country' (단일 사용자) 오타라고 말해하고 있음을하십시오 사용자 ** s **를 타자는 것을 의미했다 !! 그렇지 않으면 정말 바보 같고 쉽게 :-) – paxdiablo