帮助的SQL查询 - 算

问题描述:

我在SQL服务器3台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

但我

感谢的提前

0遇到错误

select 
    (select count(*) from A) as A, 
    (select count(*) from B) as B, 
    (select count(*) from C) as C 
+0

布局比其他人更清晰易读。 – 2010-11-05 16:49:41

SELECT 
    A = (SELECT COUNT(*) FROM A), 
    B = (SELECT COUNT(*) FROM B), 
    C = (SELECT COUNT(*) FROM C) 

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 

其他的解决方案是干净了一点,但是......这里的另一种方式。 :)

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