2010-11-05 2 views
3

У меня есть 3 таблицы в SQL-сервере 2008помощь с SQL-запроса - подсчет

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
select 
    (select count(*) from A) as A, 
    (select count(*) from B) as B, 
    (select count(*) from C) as C 
+0

Макет является более разборчивым, чем другие. –

1
SELECT 
    A = (SELECT COUNT(*) FROM A), 
    B = (SELECT COUNT(*) FROM B), 
    C = (SELECT COUNT(*) FROM C) 
2
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 
0

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

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 
Смежные вопросы