Я пытаюсь подсчитать различные значения для каждого столбца в таблице.
Я пытаюсь сделать это, используя временную таблицу, в которой есть каждое имя столбца, для которого требуется подсчет.Затем, используя переменную, которая является индексом этой таблицы, я хочу вставить различные значения во вторую временную таблицу.
CREATE TABLE ##test ([row] [int] NOT NULL, [COLUMN_NAME] [char] (100))
Insert INTO ##test ([row], [COLUMN_NAME])
VALUES
(1,'[Equipment Number]'),
(2,'[CEID]'),
(3,'[Serial Number]'),
(4,'[Manufacturer]')
CREATE TABLE ##test2 ([COLUMN_NAME] [char] (100), [Dist Count][INT])
DECLARE @i INT = 1
DECLARE @COL [char] (100)
WHILE @i <= 4 --i.e. the number of rows in ##test
BEGIN
SET @COL = (select [COLUMN_NAME] from ##test WHERE [row] = @i)
Insert INTO ##test2 Values (@COL, (SELECT count(DISTINCT @COL) FROM [Database].[Original_Table]))
SET @i = @i+1
END
Вывод, который я ожидаю в ## test2, выглядит следующим образом:
COLUMN_NAME |Dist Count
[Equipment Number]|1,234
[CEID] |456
[Serial Number] |789
[Manufacturer] |1,011
Но в таблице, в которой я получаю таблицу со всеми единицами в моем счетчике Dist, т.е.
COLUMN_NAME |Dist Count
[Equipment Number]|1
[CEID] |1
[Serial Number] |1
[Manufacturer] |1
Как я могу заставить свой второй цикл распознавать, что @COL - это имя столбца из Original_Table?