Мне нужно подсчитать общее количество строк в запросе, и этот запрос имеет объединение. Если я использую Count(*)
, я получаю ошибку. Так как я могу получить счет?
Это мой код:
SELECT
ProjectName, ProjectReference,
ProjectID, SiteSupervisor,
PrincipalContractor, PrincipalDesigner
FROM
(SELECT
ProjectName, ProjectReference,
ProjectID, SiteSupervisor,
PrincipalContractor, PrincipalDesigner
FROM
CompanyProjects
WHERE
EndDate < GETDATE()
UNION
(SELECT
CompanyProjects.ProjectName AS ProjectName,
CompanyProjects.ProjectReference AS ProjectReference,
CompanyProjects.ProjectID AS ProjectID,
CompanyProjects.SiteSupervisor AS SiteSupervisor,
CompanyProjects.PrincipalContractor AS PrincipalContractor,
CompanyProjects.PrincipalDesigner AS PrincipalDesigner
FROM
CompanyProjects
INNER JOIN
CompanyCurrentReview ON companyprojects.ProjectID = CompanyCurrentReview.ReviewProjectId
AND CompanyCurrentReview.IsReviewComplete = 0
AND CompanyCurrentReview.DateTime BETWEEN DATEADD(YEAR, -2, GETDATE()) AND GETDATE()
AND ProjectID NOT IN (SELECT ProjectID
FROM CompanyProjects
WHERE EndDate < GETDATE()))
UNION
(SELECT
ProjectName, ProjectReference,
ProjectID, SiteSupervisor,
PrincipalContractor, PrincipalDesigner
FROM
CompanyProjects
WHERE
CreatedDate BETWEEN DATEADD(YEAR, -2, GETDATE()) AND GETDATE()
AND ProjectID NOT IN ((SELECT CompanyProjects.ProjectID
FROM CompanyProjects
INNER JOIN CompanyCurrentReview ON companyprojects.ProjectID = CompanyCurrentReview.ReviewProjectId AND CompanyCurrentReview.IsReviewComplete = 0
AND CompanyCurrentReview.DateTime between DateAdd(year,-2,GETDATE() ) AND GETDATE())
UNION SELECT ProjectID FROM
CompanyProjects WHERE EndDate < GETDATE()))) As result order by ProjectID desc