Как подмножество и печать таблицы, используя WHILE l oop in SQL? - PullRequest
0 голосов
/ 05 августа 2020
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.

...