Goran Bibic Ответов: 2

Выбор Sql для месяца


Мне нужно создать отчет за месяц

Я творил на один день...

Нужно починить для Монта

Некоторая помощь

Что я уже пробовал:

select datum as Datum, SUM (Try_Convert(float,[iznos_sa_pdv])) as UKUPNO
from mp_kasa_lista
where [datum] >= CONVERT(datetime, convert(varchar(10), GETDATE() ,120), 120)
AND   datum <  DATEADD(day, 1, convert(datetime, convert(varchar(10), getdate(), 120), 120)) and tip_placanja='Virman'
group by datum

2 Ответов

Рейтинг:
19

OriginalGriff

GROUP BY объединяет совпадающие значения именно так - так что значения, которые отличаются даже на 1000-ю долю секунды, будут все в отдельных группах.

Чтобы сгруппировать значение для месяца, вам необходимо указать месяц как в SELECT, так и в thge GROUP BY parts команды.
Вы можете сделать это с помощью DATEPART, чтобы вычесть день месяца из значения DATETIME, чтобы "нормализовать" их до 1-го числа месяца, а затем преобразовать их в дату, чтобы исключить любую временную часть.
Или используйте DATEPART для извлечения месяца и года и используйте их вместо этого.


Рейтинг:
0

Mansur Kurtov

Вы можете сделать это с помощью MONTH (возвращает целое число, представляющее месяц указанной даты):

select datum as Datum, SUM (Try_Convert(float,[iznos_sa_pdv])) as UKUPNO
from mp_kasa_lista
where MONTH([datum]) = MONTH(GETDATE()) and tip_placanja='Virman'
group by datum