2016-03-03 5 views
0

Я хочу получить некоторые данные из БД, указав несколько диапазонов дат. Например, в феврале я хочу получать еженедельный отчет из таблицы в этом порядке с 01 по 07 февраля, с 07 по 14 февраля, с 14 по 21 февраля, с 21 по 28 февраля и с 28 февраля по 01 марта. В БД записи хранятся в ежедневно мудрым не еженедельно. Я хочу сгруппировать его как еженедельно и рассчитать сумму, а затем показать результат. Пожалуйста, помогите мне, если вы знаете это дело.SQL Query-Несколько диапазонов дат

Для четкого обзора рассмотрите 3 таблицы & его столбцы.

Table A:id,timestamp (comment-data is inserted daily) 
Table B:id,fruits 
Table C:id,fruits_type 

Результат:

fruits_type count(id) timestamp 
apple 3 01-02-2016 to 07-02-2016 
orange 5 01-02-2016 to 07-02-2016 
pineapple 8 01-02-2016 to 07-02-2016 
apple 4 07-02-2016 to 14-02-2016 
orange 5 07-02-2016 to 14-02-2016 

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

Пожалуйста, помогите, если вы знаете, это

+0

Пожалуйста, отредактируйте свой вопрос с помощью соответствующей таблицы (таблиц), некоторых образцов данных и желаемого результата. –

+0

Вас интересует общее решение для недельного расчета или только для конкретных дат? – tobypls

+0

Для четкого просмотра рассмотрите 3 таблицы и их столбцы. Таблица A: идентификатор, метка времени (комментарий-данные вставляются в день) Таблица B: ID, фрукты таблица C: Идентификация, fruits_type Результат: fruits_type \t Количество (ID) \t метка времени яблока 01-02- 2016 в 07-02-2016 оранжевый 01-02-2016 до 07-02-2016 ананаса 01-02-2016 до 07-02-2016 яблоко 07-02-2016 в 14-02-2016 orange 07-02-2016 по 14-02-2016 Условия: идентификатор должен совпадать между тремя таблицами, выборка данных путем предоставления группы по методу fruit_type, а отметка времени должна быть еженедельно. Пожалуйста, помогите, если вы это знаете. – radhik

ответ

0

Чтобы получить сумму всех значений между двумя датами вы могли бы сделать это следующим образом:

SELECT SUM(Column1) 
FROM Table1 
WHERE Date1 BETWEEN '2/1/2016' AND Date1 <'2/7/2016' 

Если вы хотите, чтобы сделать его более гибким и иметь запрос получить сумму за последнюю неделю вы можете использовать функцию DATEADD отставать на одну неделю:

SELECT SUM(Column1) 
FROM Table1 
WHERE Date1 BETWEEN DATEADD(week, -1, GETDATE()) AND Date1 < GETDATE() 

Если вы хотите, чтобы результирующий набор, чтобы включить строку для каждой недели, вы можете использовать UNION для объединения Que Риз.

Смежные вопросы