Подсчитать общее количество строк из нескольких запросов? - PullRequest
0 голосов
/ 28 марта 2019

Как связать это с одним запросом и получить общее количество от всех 3 запросов? Спасибо

SELECT COUNT(*)
FROM TopicArticleMappings a
INNER JOIN ArticleAuthor b
ON A.ArticleId = B.ArticleGuid
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'


SELECT COUNT(*) FROM JurisdictionAuthors a
INNER JOIN Authors b
ON a.AuthorGuid = b.AuthorGuid
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'

SELECT COUNT(*) FROM TopicConsultingEditors a
INNER JOIN tAuthors b
ON a.AuthorRef = b.AuthorRef
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'

Ответы [ 3 ]

1 голос
/ 28 марта 2019

Один из способов - просто поставить SELECT вперед и использовать подзапросы:

SELECT (SELECT COUNT(*)
        FROM TopicArticleMappings a JOIN
             ArticleAuthor b
             ON A.ArticleId = B.ArticleGuid
        WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'
       ) +
       (SELECT COUNT(*)
        FROM JurisdictionAuthors a JOIN
             Authors b
             ON a.AuthorGuid = b.AuthorGuid
        WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'
       ) +
       (SELECT COUNT(*)
        FROM TopicConsultingEditors a JOIn
             tAuthors b
             ON a.AuthorRef = b.AuthorRef
        WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'
       )
1 голос
/ 28 марта 2019

Используйте subquery с union all для объединения всего набора результатов:

SELECT SUM(CNT) AS Total_count
FROM (SELECT COUNT(*) AS CNT
      FROM . . .
      UNION ALL
      SELECT . . .
      FROM . . .
      UNION ALL
      SELECT . . . 
      FROM . . .
     ) t;
0 голосов
/ 28 марта 2019

Я бы использовал переменные вместо "union", например:

declare @JurisdictionAuthors int, @TopicConsultingEditors int, @TopicArticleMappings  int

SELECT @TopicArticleMappings = COUNT(*)
FROM TopicArticleMappings a
INNER JOIN ArticleAuthor b
ON A.ArticleId = B.ArticleGuid
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'

SELECT @JurisdictionAuthors = COUNT(*) 
FROM JurisdictionAuthors a
INNER JOIN Authors b
ON a.AuthorGuid = b.AuthorGuid
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'

SELECT @TopicConsultingEditors = COUNT(*) 
FROM TopicConsultingEditors a
INNER JOIN tAuthors b
ON a.AuthorRef = b.AuthorRef
WHERE b.AuthorGuid = '9AC4AB6E-7454-4660-97CD-93D5BC6772C3'

select @JurisdictionAuthors + @TopicConsultingEditors + @TopicArticleMappings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...