我有一个表格列表,我希望以相同的方式进行汇总,保存表格名称会发生变化,有人可以指出我正确的工具吗?
示例:
从table1中选择strm,snapshot,count(*),其中strm in('2167','2157')按strm分组,快照顺序按strm,快照
从table2中选择strm,snapshot,count(*),其中strm in('2167','2157')按strm分组,快照按strm分组,快照
从table3中选择strm,snapshot,count(*),其中strm in('2167','2157')按strm分组,快照顺序按strm,快照
我通过这种方法得到了我想要的结果,但是对于40-60个表一个接一个地看起来很麻烦...我使用SQL MS 2016如果这给我的选项提供任何帮助。 TIA 8)
答案 0 :(得分:0)
以下内容将搜索目录中包含array
和strm
列的所有表格,并动态构建您的查询。
snapshot
答案 1 :(得分:0)
声明@TSQL nvarchar(max)=(从[dbo]中选择不同的'选择strm,snapshot,count(*)为' + T0.TABLE_NAME +'。[&#39 ; + TABLE_NAME +']按strm分组,快照按strm,快照'分组 来自INFORMATION_SCHEMA.TABLES T0 where exists(从INFORMATION_SCHEMA.COLUMNS C1中选择1,其中C1.COLUMN_NAME =' strm'和T0.TABLE_SCHEMA = C1.TABLE_SCHEMA和T0.TABLE_NAME = C1.TABLE_NAME) 和存在(从INFORMATION_SCHEMA.COLUMNS C2中选择1,其中C2.COLUMN_NAME ='快照'和T0.TABLE_SCHEMA = C2.TABLE_SCHEMA和T0.TABLE_NAME = C2.TABLE_NAME) 对于XML PATH(''))
exec sp_EXECUTESQL @TSQL
- 谢谢Anderson先生这是一个很大的帮助,我想我需要研究TSQL。