GROUP BY возвращает более одной строки MYSQL - PullRequest
0 голосов
/ 31 марта 2020

ТАБЛИЦА ИЗОБРАЖЕНИЙ: ЗДЕСЬ

Мне нужно сложить все значения из total_serviços (годовой доход с 2019 года) из определенного cmc_emissor значения cmc_emissor одинаковы во все строки

Вот мой код и результат:

SELECT year(emissao) as 'Periodo', cmc_emissor, sum(total_serviços) as 'Total'
FROM nfpse
GROUP BY cmc_emissor, emissao
HAVING cmc_emissor = 'E000000';

Результат: здесь

Ожидаемый результат: здесь

Ответы [ 2 ]

1 голос
/ 31 марта 2020
SELECT cmc_emissor, year(emissao) as 'Periodo',
       sum(total_serviços) as 'Total'
FROM nfpse
WHERE cmc_emissor = 'E000000'
GROUP BY cmc_emissor, year(emissao)
0 голосов
/ 31 марта 2020

Вы пропускаете год (emissao) в своей группе, поскольку он соответствует полной дате, включая дни и месяцы и, следовательно, дает несколько результатов.

SELECT year(emissao) as 'Periodo', cmc_emissor, sum(total_serviços) as 'Total'
FROM nfpse
GROUP BY cmc_emissor, YEAR(emissao)
HAVING year(emissao) = '2019';

SQL Дата документации и Функции времени

Год () Документация по функциям SQL

...