2015-08-24 4 views
0

У меня проблема с моим запросом, SQL Server 2012 и VB 2015SQL Server 2012 с Между 2 datetime2

Здесь логика SQL, и это довольно просто: я просто не вижу простой способ сделать это. ..

Ex: Я получил 2 даты тоже сделать период, который должен быть статическим: 31-10-XXXX и 1,11-XXXX

Я не знаю, сколько лет я и мне все периоды, которые нужно ввести в поле со списком.

Вот пример того, что я делаю: я нуб в SQL :)

Получение первую дату и последнюю дату в таблице

Declare @time1 datetime2, @time2 datetime2 

SET @time1 = (select top 1 DateCreated from table order by DateCreated asc) 
SET @time2 = (select top 1 DateCreated from table order by DateCreated desc) 

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

Loop 
    Select * 
    from Table 
    where DateCreated between '2013-10-31' and '2014-11-01' 

    Return X periode 
    counter + 1 (which is year) 
End 

Могу ли я сделать это проще или советом? И если бы я мог поставить это всего за один звонок

Я мог бы сделать пару звонков в DB, ​​я хочу, чтобы я тоже понял, и я уверен, что это не лучший или чистый способ!

+0

Ваши даты «31-10-xxxx» в таблицах? как фактические поля даты/времени? или строки? –

+0

дата 31-10-2014 ex are are datetime2 – Tidoy007

ответ

0

Это не может быть цели, но ... Если вы хотите сообщить на период месяца что-то подобное может работать для вас:

 Acivity_Month Sum 
     2014.12 4170.49 
     2015.01 7300.00 
     2015.02 3255.00 
     2015.03 3037.00 
     2015.04 2155.00 
     2015.05 3933.00 
     2015.06 863.17 
     2015.07 485.00 
     2015.08 826.67 

Для произвольных диапазонов дат можно создать таблицу присоединитесь к тому, у которого есть диапазон дат и «имя» для группировки.


Извините, мой SQL не был включен в сообщение.

 SELECT CONVERT(char(7),datetime2,102) YYYY_MM, SUM(TotTransAmt) AS [Sum] 
     FROM  MAF01 
     WHERE (LineItem = '1') 
     GROUP BY CONVERT(char(7),datetime2,102) 

Вы можете использовать YEAR (datetime2) для группировки.

+0

нет ее для поиска года (каждый период) я получил в этом столе – Tidoy007

+0

Да, я попытаюсь это сделать, если это не работает, но вы отправите меня на правильную линию! – Tidoy007