У меня есть документы с несколькими строками. Для каждой строки в этом коде есть несколько продуктов. У каждого продукта есть своя категория. Таким образом, они могут быть смешаны внутри одних и тех же документов, например, в документе 4 у меня есть 10 строк, 4 могут быть, например, категории «фрукты», а остальные 6, например, категории «мороженое». Поэтому, когда я извлекаю этот документ, я получаю результат, в котором у меня есть
--------------------------------
CUSTOMER_NAME --- DOC NUMBER ------ CATEGORY
CUSTOMER_1 ---- 10 ------- FRUIT
CUSTOMER_1 ---- 10 ------- ICE CREAM
----------
Мне нужно извлечь только строку с наиболее используемой категорией, поэтому в этом случае «Мороженое»
Это мой код
DECLARE @dataa NVARCHAR(MAX) ;
DECLARE @datada NVARCHAR(MAX) ;
SET @datada = DATEADD(DAY, -1, GETDATE());
SET @dataa = DATEADD(DAY, -60, GETDATE());
SELECT
DSCCONTO1, TABCATEGORIE.DESCRIZIONE, TESTEDOCUMENTI.NUMERODOC
FROM
.dbo.TESTEDOCUMENTI
INNER JOIN
.dbo.ANAGRAFICACF ON CODCLIFOR = CODCONTO
INNER JOIN
.dbo.RIGHEDOCUMENTI ON PROGRESSIVO = IDTESTA
INNER JOIN
.dbo.ANAGRAFICAARTICOLI ON CODART = ANAGRAFICAARTICOLI.CODICE
INNER JOIN
.dbo.TABCATEGORIE ON CATEGORIA = TABCATEGORIE.CODICE
INNER JOIN
.dbo.TABCATEGORIESTAT ON CODCATEGORIASTAT = TABCATEGORIESTAT.CODICE
WHERE
.dbo.TESTEDOCUMENTI.DOCCHIUSO = '0'
AND .dbo.TESTEDOCUMENTI.BLOCCATO = '0'
AND DATADOC BETWEEN @dataa AND @datada
AND CODCLIFOR LIKE '%C%'
AND TESTEDOCUMENTI.TIPODOC = 'PCL'
GROUP BY
DSCCONTO1, TABCATEGORIE.DESCRIZIONE, TESTEDOCUMENTI.NUMERODOC