-2

我有一个带有recordid,的表格record name和一个带有相应表格名称的额外列。每条记录都有自己的表。现在我想在 sql 中使用 select 查询来选择record nameid其对应的表计数。请帮我 ..

谢谢你

我有一个名为“记录”的表

recordid 名称 描述 表名 --------------------------------------------- --- 1 条记录 1 描述 1 tb_name1

 2       record2      description1     tb_name2

每条记录都有一个表。例如,记录 1 的表名为 tb_name1,记录 2 的表名为 tb_name2

在 tb_name1

id recordid name dob 地址 entrydate

1    1           xxx      13-6-2011   xxx           7/9/2013
2    1           xxx      13-6-2011   xxx           8/9/2013
3    1           xxx      13-6-2011   xxx           8/9/2013
4    1           xxx      13-6-2011   xxx           9/9/2013

就像在 tb_name2

id recordid name dob 地址 entrydate

1    2           xxx      13-6-2011   xxx           6/9/2013
2    2           xxx      13-6-2011   xxx           7/9/2013
3    2           xxx      13-6-2011   xxx           8/9/2013

我想要这样的结果

recordid 名称 描述 计数

1 记录 1 描述 1 4 2 记录 2 描述 1 3

4,3是其对应表的行数..

4

1 回答 1

0

如果您可以容忍不能保证 100% 准确的计数1,那么您可以加入sys.partitions目录视图,该视图描述了它的rows列:

指示此分区中的大致行数。

所以你会有这样的加入:

select recordid,name,description,rowcount
from
   [unnamedfirsttableinquestion] t
        inner join
  (select object_id,SUM(rows)
    from sys.partitions group by object_id) u (oid,rowcount)
     on
         u.oid = OBJECT_ID(t.tablename)

1在实践中,您通常可以容忍这种情况——或者:

  • 该表不受频繁更新的影响,在这种情况下,行数很可能是最新的,或者,
  • 该表会经常更新,在这种情况下,当您知道答案时,它可能已经改变了。
于 2013-09-09T06:31:29.930 回答