помогите с запросом sql - count - PullRequest
3 голосов
/ 05 ноября 2010

У меня есть 3 таблицы в SQL Server 2008

table A , table B , Table C

Мне нужно сосчитать все 3 таблицы и увидеть их в одной строке запроса, например:

A  B   C
30 40 12

Я попробовал это: select count(*) from A,select count(*) from B,select count(*) from C

но я получил ошибку

заранее благодарен

Ответы [ 4 ]

4 голосов
/ 05 ноября 2010
select
    (select count(*) from A) as A,
    (select count(*) from B) as B,
    (select count(*) from C) as C
2 голосов
/ 05 ноября 2010
SELECT *
FROM 
(SELECT COUNT(*) AS A_Count
 FROM A) tmp,
(SELECT COUNT(*) AS B_Count
 FROM B) tmp2, 
(SELECT COUNT(*) AS C_Count
 FROM C) tmp3
1 голос
/ 05 ноября 2010
SELECT
    A = (SELECT COUNT(*) FROM A),
    B = (SELECT COUNT(*) FROM B),
    C = (SELECT COUNT(*) FROM C)
0 голосов
/ 05 ноября 2010

Другие решения немного чище, но ... вот еще один способ.:)

SELECT SUM(CASE WHEN TableName = 'A' THEN RecordCount ELSE 0 END) AS A_Count,
SUM(CASE WHEN TableName = 'B' THEN RecordCount ELSE 0 END) AS B_Count,
SUM(CASE WHEN TableName = 'C' THEN RecordCount ELSE 0 END) AS C_Count
FROM
(
    SELECT 'A' AS TableName, COUNT(*) AS RecordCount FROM A
    UNION ALL
    SELECT 'B', COUNT(*) FROM B
    UNION ALL
    SELECT 'C', COUNT(*) FROM C
) q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...