У меня есть этот код:Есть ли способ группировать текстовый столбец?
select CAST(OPERATOR_NAME AS NVARCHAR(MAX)) as 'Utilizador',
TERMINAL_DESCRIPTION as 'Terminal',
DOCUMENT_DATE as 'Data de Inicio',
PAYMENT_LIMIT_DATE as 'Data de Fim',
ORIGIN_WAREHOUSE_NAME as 'Loja',
DOCUMENT_TYPE_DESCRIPTION as 'Tipos de Documentos'
from MRD_DOCUMENT_HEADER
GROUP BY CAST(OPERATOR_NAME AS NVARCHAR(MAX))
Но это дает мне эту ошибку:
Column
MRD_DOCUMENT_HEADER.TERMINAL_DESCRIPTION
is invalid in the select list because it is not contained in either an aggregate function or theGROUP BY
clause.
Я попытался VARCHAR(100)
и MAX
, но это не сработало.
Как я могу заставить это работать?
Обновлено
SELECT DISTINCT
Utilizador = OPERATOR_NAME
, Terminal = TERMINAL_DESCRIPTION
, [Data de Inicio] = DOCUMENT_DATE
, [Data de Fim] = PAYMENT_LIMIT_DATE
, Loja = ORIGIN_WAREHOUSE_NAME
, [Tipos de Documentos] = DOCUMENT_TYPE_DESCRIPTION
FROM dbo.MRD_DOCUMENT_HEADER
WHERE
MRD_DOCUMENT_HEADER.DOCUMENT_TYPE_DESCRIPTION = (@DOCUMENT_TYPE_DESCRIPTION)
OR MRD_DOCUMENT_HEADER.DOCUMENT_DATE = (@DOCUMENT_DATE)
OR MRD_DOCUMENT_HEADER.PAYMENT_LIMIT_DATE =(@PAYMENT_LIMIT_DATE)
OR MRD_DOCUMENT_HEADER.CORPORATION_ID = (@CORPORATION_ID)
Мне очень понравилось это решение, я не хочу повторять OPERATOR_NAME (извините за то, что не упоминал об этом раньше) –
@Devart имеет много строк данных. Например, OPERATOR_NAME многократно повторяет Name_LastName. Но я думаю, это невозможно, потому что каждый из них имеет связь с DOCUMENT_DATE, и этот столбец имеет разные значения для каждого OPERATOR_NAME. –
Подумайте над SQL Server как инструмент для извлечения данных, которые вам нужны, используя SELECT.Затем вы решаете, как отображать данные с помощью построителя отчетов. – tezzo