DECLARE @DATA_COL INT = 1
DECLARE @DATA_New INT
DECLARE @Total_COLUMN INT
DECLARE @Trial NVARCHAR(10)
DECLARE @Column INT
DECLARE @plot INT
DECLARE @trt INT
DECLARE @rep INT
DECLARE @block INT
DECLARE @data INT
SET @Total_COLUMN = (SELECT COUNT(DISTINCT (DATA_COLUMN)) FROM FINAL_DATA
WHERE FINAL_DATA.TRIAL_ID='AU_1')
SET @DATA_COL = 1
WHILE @DATA_COL <= @Total_COLUMN
BEGIN
PRINT (SELECT
@Trial = TRIAL_ID, @Column=DATA_COLUMN, @plot = PLOT_NO,
@trt = TRT_NO, @rep = REP_NO, @block = BLOCK_NO, @data = DATA
FROM
FINAL_DATA
WHERE
FINAL_DATA.TRIAL_ID = 'AU_1' AND DATA_COLUMN = @DATA_COL)
SET @DATA_COL = @DATA_COL + 1
END
Я пытаюсь разделить таблицу на отдельное значение DATA_COLUMN. Я не могу напечатать запрос.
Я получаю эту ошибку:
Подзапросы в этом контексте недопустимы. Разрешены только скалярные выражения.
Я был бы признателен, если бы кто-нибудь помог мне решить проблему.
Я также пробовал другой подход.
select
TRIAL_ID, DATA_COLUMN, PLOT_NO, TRT_NO, REP_NO, BLOCK_NO,DATA
from
FINAL_DATA
group by
DATA_COLUMN, TRIAL_ID
Запустив этот код, я получаю следующую ошибку:
Столбец 'FINAL_DATA.PLOT_NO' недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY.