Выберите наиболее используемое значение в документе из SQL - PullRequest
0 голосов
/ 05 июля 2019

У меня есть документы с несколькими строками. Для каждой строки в этом коде есть несколько продуктов. У каждого продукта есть своя категория. Таким образом, они могут быть смешаны внутри одних и тех же документов, например, в документе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...