我想创建一个包含2列RECORDS_COUNT
和TABLE_NAME
的表COUNT
,它显示5个表的行数:
TABLE1
,TABLE2
,... TABLE5
和POP-TOTAL
。
例如:
TABLE-NAME | COUNT
----------------------
TABLE1 | 200
----------------------
TABLE2 | 100
----------------------
TABLE3 | 200
----------------------
TABLE4 | 350
---------------------
TABLE5 | 150
----------------------
POP-TOTAL | 1000
这些数字每天都会改变,我需要快速访问结果,而无需打开5个表格。
答案 0 :(得分:1)
我已经将下面的旧答案留下了兴趣,但我认为这可以更准确地解决您的问题:
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
into #temp
FROM
sysobjects so,
sysindexes si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
and so.name in ('TABLE1', 'TABLE2', 'TABLE3', 'TABLE4', 'TABLE5')
GROUP BY
so.name
select *
from #temp
union all
select 'POP-TOTAL', (select SUM([RowCount]) from #temp)
这将在临时表中生成所需的结果。然后总结并显示它们。
旧答案:
如果格式很重要,这可能不适合你,但这里有一个答案: Select COUNT in two table in one query with MYSQL
它可能会让你走上正轨。
select (select count(*) from table1) as t1_amount,
(select count(*) from table2) as t2_amount,
(select count(*) from table1) + (select count(*) from table2) as Total
使用这种方法,每个表都有一列,加上一个列。
它不是最有效的,但如果你只是想每天检查,它应该做的工作。
输出:
t1_amount | t2_amount | Total
-----------------------------
1121 | 544 | 1665