Как заполнить столбец результатами оператора SQL, динамически созданного в другом столбце - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть динамически созданный оператор SQL count (*) в столбце 3, где имя таблицы является динамическим элементом.Я хочу поместить результаты SQL в столбце 3 в столбец 4. Как это можно сделать?

;with cteTables
as(
SELECT      c.name  AS 'ColumnName'
            ,t.name AS 'TableName'
            ,statmnt = 'select count(*) cnt from '+t.name+' where sq = 0'
            ,Totals = 0
FROM        sys.columns c
JOIN        sys.tables  t   ON c.object_id = t.object_id
WHERE       c.name = 'SQ'
), cteTots
as
(
select ColumnName,  TableName,  statmnt
       ,Totals2 = '' --<---------------------  
from cteTables
)
select * from cteTots

1 Ответ

0 голосов
/ 05 апреля 2019

Я думаю, это то, что вы ищете:

DECLARE @Sql nvarchar(4000);

SELECT @Sql = 'SELECT '+ t.name + ' AS TableName, '+ c.name +' AS ColumnName, 
               (SELECT COUNT(*) FROM '+ t.name +' WHERE '+ c.name +' = 0) As Total
               FROM '+ t.name 
FROM        sys.columns c
JOIN        sys.tables  t   ON c.object_id = t.object_id
WHERE       c.name = 'SQ'

EXEC(@SQL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...