计算sql中的多个表

问题描述 投票:0回答:1

我有一个数据库,每天都有一个表,这使它成为一个由很多个月甚至几年组成的庞大数据库。现在,我想统计每个月所有表的记录。我的意思是,我想要所有表中所有记录的计数,但每月间隔一次。

我已经使用过这个查询:

select
(SELECT count(*) FROM [Rayanparsi].[dbo].[TransRecordTable_14000601] where mti=200 )+
(SELECT count(*) FROM [Rayanparsi].[dbo].[TransRecordTable_14000602] where mti=200 )+
(SELECT count(*) FROM [Rayanparsi].[dbo].[TransRecordTable_14000603] where mti=200 )+...

witch 很有用,但它不会给我每个月的结果。它给了我查询中存在的所有表的总数。 谢谢大家。

sql database multiple-tables
1个回答
0
投票

您应该能够将相关的年/月/日值硬编码到针对每个表的查询中,将所有单独的表查询联合在一起,然后查询该结果以提供您需要的最终结果。

此 SQL 将为您提供如何执行此操作的示例;显然你可能需要调整它以满足你的确切要求

WITH ALL_DATA AS 
(SELECT '1400' TABLE_YEAR, '06' TABLE_MONTH, '01' AS TABLE_DAY, count(*) AS TABLE_COUNT FROM [Rayanparsi].[dbo].[TransRecordTable_14000601] where mti=200
 UNION
 SELECT '1400' , '06', '01', count(*) FROM [Rayanparsi].[dbo].[TransRecordTable_14000602] where mti=200
 UNION
 SELECT '1400' , '06', '01', count(*) FROM [Rayanparsi].[dbo].[TransRecordTable_14000603] where mti=200
)
SELECT TABLE_YEAR, TABLE_MONTH, SUM(TABLE_COUNT)
FROM ALL_DATA
GROUP BY TABLE_YEAR, TABLE_MONTH
;
© www.soinside.com 2019 - 2024. All rights reserved.