我有这样的代码:有什么方法可以通过文本列进行分组吗?
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