【发布时间】:2014-07-27 00:22:11
【问题描述】:
我目前正在开发一个数据库,我试图在数据库中查找所有事务类型表(其中表名不以 _Result 或 _ History 开头),然后显示每个表在一个数据库模型的计算。
找出这一点的目的是确定计算中最重要的表,以便这些特定的表在更新统计信息时具有优先权。
目前我正在使用两个表。 1) 第一个名为 tmpCalcSources 的表显示了数据库中所有源表的名称(名为“Source”的列)以及与之关联的计算 ID(名为“CalculationID”的列) 2) 名为 tmpCalcSourceRows 的第二个表显示了源表名称(名为 'TableName' 的列)以及与每个源表关联的行数(名为 'RowNum' 的列)
我目前有这个查询:
选择来源,
COUNT(CalculationID) AS NumberOfUses
来自 tmpCalcSources
WHERE Source not like '%_Result%'
按来源分组
按使用次数 DESC 排序;
以上查询为我提供了下表:
plPeriods 292
pl措施 10
时间 43
等等……
我现在正尝试在上表中再添加一件事。我希望它还显示每个表中包含的行数(所以是另一列)。我想从 tmpCalcSourceRows 表中获取列 'RowNum' 并能够在上面显示的表中显示它。
【问题讨论】:
-
我认为您的数据不正确。该查询不应导致该表。 Sum(1) 将计算您的查询组合在一起的行数,但我不知道这是否会有所帮助,因为我不明白您在问什么。
-
我什么都不懂,但是您可以将查询拆分为两个单独的公用表表达式,然后进行简单的连接。
-
您是否对查询的结果进行了透视并删除了列标签?否则,您的查询结果与您提供的查询不匹配。另一张桌子叫什么名字?您是说可以使用 TableName 列与 tmpCalcSources.Source 连接另一个表吗?
标签: sql sql-server count inner-join