帮助的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
答
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
布局比其他人更清晰易读。 – 2010-11-05 16:49:41