Member 13410460 Ответов: 1

Как суммировать дни с записями в SQL ?


Привет,

У меня есть SQL-таблица со статьями с датами внутри, и я хочу проверить, сколько дней в месяце с записями?

Например: в январе 2019 года у меня есть только 15 дней с записями, остальных нет, а затем в феврале 2019 года у меня есть несколько других, но не полных февраля, так как можно увидеть общее количество дней с записями на каждый месяц года.

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

  select day(Date) as 'Day', count(*) as 'number of days',
	   CONVERT(char(7), date, 120) As [year]
from [dbo].[Expenses]
where Day(date) is not null
group by day(Date),CONVERT(char(7), date, 120) 


Это то, что я пробовал, но я не получаю правильные цифры.
Благодарно

Richard MacCutchan

Логичный ответ состоит в том, чтобы выбрать все записи за определенный месяц, а затем подсчитать количество уникальных дней в наборе. И почему у вас должны быть записи со значением дня как null?

Member 13410460

Привет, спасибо за ваш ответ, Мне нужно считать только те дни, когда я что-то купил.

1 Ответов

Рейтинг:
11

#realJSOP

Попробовать это:

SELECT DATENAME(MONTH, MONTH([Date])) AS ForMonth
       ,COUNT(*) AS NumberOfDays
       ,YEAR([Date]) AS ForYear
FROM   [dbo].[Expenses]
where  [Date] IS NOT NULL
GROUP BY YEAR([Date]), MONTH([Date]);


Member 13410460

Привет, спасибо за ваш ответ, я попробовал код, и он говорит, что функция "Datename требует 2 аргумента"

#realJSOP

Мой непосредственный ответ-стать программистом, научиться пользоваться google и исправить это. Серьезно, чувак...

Я исправил код.

Member 13410460

ха-ха, я просто ответил на результаты вашего кода, вот и все. Но все равно спасибо

Member 13410460

Последний код-это тот, который дает мне количество дней только в январе, в последнем коде вам нужно было только поместить имя даты(месяц, [дата]) в группу BY, и это было бы правильно, поэтому, пожалуйста, сделайте это так :
Выберите имя даты(месяц,[дата]) в качестве ForMonth
,COUNT(*) AS NumberOfDays
,Год([дата]) как ForYearGR

От [dbo].[Расходы]
где [дата] не равна нулю
Группа по году([дата]), месяцу([дата]), имени даты(месяц,[дата])

Так что это соответствовало бы вопросу.

Большое вам спасибо , вы мне помогли. !