Получить имя столбца, количество строк и имя таблицы в SQL Server - PullRequest
0 голосов
/ 24 октября 2019

У меня есть условие, где моя таблица содержит столбец, который имеет 5 строк. Эти 5 строк являются именами таблиц, и мне нужно выполнить эти имена таблиц, чтобы не было строк.

Кроме того, мне нужно извлечь значение 1 столбца в каждой из этих 5 таблиц.

ex:

 Table name: PHP     
    'select all_tables from kbc'
o/p: all_tables
     Customers
     Hr
     PHP
     xyz
     abc

У меня есть клиенты, Hr, Php, xyz, abcстолы. Предполагая, что эти таблицы имеют несколько строк. Кроме того, мне нужно выбрать столбец company_code в каждой из этих 5 таблиц.

Ожидаемый результат должен быть:

 table_name rowcount Company_code
    Customers     10     123
    Hr            20     234
    PHP           50     345
    XYZ           100     456
    abc           05     567

Я получил, table_name и count, используя наш стандартный запрос с sys.objectsи sys.partitions.

1 Ответ

0 голосов
/ 24 октября 2019

Я думаю, что единственная сложность здесь заключается в получении значений вашего company_code, я считаю, что это должно быть значение по умолчанию для вашей таблицы, основанное на ваших данных. Единственный способ получить значение по умолчанию - это присоединиться sys.columns->company_code

select t4.table_name
        , avg(t2.rows) AS 'RowCount'
        , object_definition(default_object_id) AS definition
from sys.objects t1
inner join sys.partitions t2 ON t1.object_id = t2.object_id
inner join sys.columns t3 on t3.object_id = t1.object_id and t3.name='company_code'
inner join kbc t4 on t4.table_name = t1.name
where t1.type = 'U'
group by t4.table_name, default_object_id;
...