Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Добрый день,

вот мой запрос

Alter View [dbo].[Stg_rej_open_itorder_history_new]
AS


select distinct count(process_date) as Countd, ....
from table...
Where Getdate()-30 <=process_date
Group by ....

Но, важно учитывать только те строки где даты идут подряд. То есть если process_date : 3.02, 8.02, 9.02, 10.02 То должны отображаться только 8/9/10.02

Я никак не могу придумать логически как это возможно утроить на Sql. Еще есть доступ к Web MEthods Mashzone.

Если есть идеи, поделитесь пожалуйся.

Спасибо заранее!
10 мар 15, 12:55    [17364088]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Добрый Э - Эх
Guest
Версия сервера какая?

кроме того, если даты будут такие:
1.02, 2.02, 3.02, 8.02, 9.02, 10.02

то какой тогда должен быть результат?
10 мар 15, 13:08    [17364175]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Cпасибо за быстрый ответ:)
2003 год


Лучше всего что бы отражались только последний запросы. Но и просто на первое время сойдет.
10 мар 15, 13:12    [17364205]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Standard Edition
10 мар 15, 13:13    [17364211]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Блин 2005 извини :)
10 мар 15, 13:15    [17364223]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aljonushka
2003 год

Это год чего ?

Aljonushka
Лучше всего что бы отражались только последний запросы. Но и просто на первое время сойдет.

Функция count вообще то выдает число. Причем тут ваши "последние запросы"?
10 мар 15, 13:16    [17364231]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
извините за неточный формуливки, я блондинка:)

Microsoft SQL Server 2005 Standard Edition

Я имела ввиду только последние друг за другом следущие даты.

Например: 02.02 03.02 04.02 05.02 18.02 19.02 20.02

Результат count (process_date) должен выдать 3 (то есть 18/19/20.02)
10 мар 15, 13:24    [17364292]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Добрый Э - Эх
Guest
инвариант группы с последующей фильтрацией только последней группы
10 мар 15, 13:26    [17364313]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
declare @t table ( dt datetime )
insert into @t
values ( '20150301' ), ( '20150302' ), ( '20150303' ), ( '20150308' ), ( '20150309' ), ( '20150310' ), ( '20150312' );

with cte as
(select dateadd( d, -row_number() over (order by dt), dt ) gr, *  from @t)

select top 1 with ties dt from
(
select count(gr) over (partition by gr) cnt, * from cte
) t
where cnt > 1
order by gr desc
10 мар 15, 13:32    [17364352]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Инвариант?

Это как то так ? http://citforum.ru/database/advanced_intro/32.shtml
Я постараюсь покапаться и разобраться. Но я никогда этим не пользовалась

Спасибо за помощь
10 мар 15, 13:36    [17364372]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Большое при большое спасибо!
10 мар 15, 13:40    [17364393]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
o-o
Guest
+ офф: куда мир катится?
Aljonushka
Большое при большое

Профессор, конечно, лопух, но аппаратура при нем, при нем
10 мар 15, 13:50    [17364471]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Добрый Э - Эх
Guest
Aljonushka
Инвариант?

Это как то так ? http://citforum.ru/database/advanced_intro/32.shtml
Я постараюсь покапаться и разобраться. Но я никогда этим не пользовалась

Спасибо за помощь
Это как-то так:
-- тестовый набор данных:
with
  b$m_test as
    (
      select cast(t as datetime) dt
        from (values
               ('2015-02-01')
              ,('2015-02-02')
              ,('2015-02-03')
              ,('2015-02-06')
              ,('2015-02-07')
              ,('2015-02-08')
              ,('2015-02-09')
              ,('2015-02-19')
              ,('2015-02-20')
              ,('2015-02-21')
             )v(t)
    )
--
-- основной запрос:
select top 1 with ties dt
  from b$m_test
 order by dateadd(d, ROW_NUMBER() over(order by dt desc), dt)
10 мар 15, 13:57    [17364525]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Добрый Э - Эх
Guest
desc забыл:
Добрый Э - Эх
Aljonushka
Инвариант?

Это как то так ? http://citforum.ru/database/advanced_intro/32.shtml
Я постараюсь покапаться и разобраться. Но я никогда этим не пользовалась

Спасибо за помощь
Это как-то так:
-- тестовый набор данных:
with
  b$m_test as
    (
      select cast(t as datetime) dt
        from (values
               ('2015-02-01')
              ,('2015-02-02')
              ,('2015-02-03')
              ,('2015-02-06')
              ,('2015-02-07')
              ,('2015-02-08')
              ,('2015-02-09')
              ,('2015-02-19')
              ,('2015-02-20')
              ,('2015-02-21')
             )v(t)
    )
--
-- основной запрос:
select top 1 with ties dt
  from b$m_test
 order by dateadd(d, ROW_NUMBER() over(order by dt desc), dt) desc;

:)
10 мар 15, 13:59    [17364543]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Добрый Э - Эх
:)


а если добавить дату '2015-02-25' ?
10 мар 15, 14:01    [17364568]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
o-o,

Билет номер девять. Приём!
— Что вы сказали? Какой «Приём»?
— Я сказал не «Приём», а «При нём». Билет номер девять, а при нём задача.
10 мар 15, 14:41    [17364884]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
o-o
Guest
Aljonushka,

ну а я про что, "спасибо" и "большое" при нем
10 мар 15, 14:43    [17364896]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
from (values
('2015-02-01')
,('2015-02-02')
,('2015-02-03')
,('2015-02-06')
,('2015-02-07')
,('2015-02-08')
,('2015-02-09')
,('2015-02-19')
,('2015-02-20')
,('2015-02-21')
...


а можно сделать так что бы в этой колонке автоматически были последние 10 дней? У меня просто таблица каждый день обновляется(пополнятся данными).
Что то вроде (values
(Getdate())
,(Getdate()-1)
,(....)

?
10 мар 15, 14:46    [17364916]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aljonushka
а можно сделать так что бы в этой колонке автоматически были последние 10 дней?

Сделайте таблицу-календарь на ближайшие 100 лет
10 мар 15, 14:47    [17364925]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
Aljonushka
from (values
('2015-02-01')
,('2015-02-02')
,('2015-02-03')
,('2015-02-06')
,('2015-02-07')
,('2015-02-08')
,('2015-02-09')
,('2015-02-19')
,('2015-02-20')
,('2015-02-21')
...


а можно сделать так что бы в этой колонке автоматически были последние 10 дней? У меня просто таблица каждый день обновляется(пополнятся данными).
Что то вроде (values
(Getdate())
,(Getdate()-1)
,(....)

?


а зачем вам values
('2015-02-01')
,('2015-02-02')
......
это же в тестовом примере имитирует ВАШУ ТАБЛИЦУ!!!!
10 мар 15, 14:54    [17364998]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Все теперь поняла.

Вы не ругайтесь сильно, SQL я "выучила" из мега толстой книги на работе. МНе ее дали и сказали-разбирайся:)

Простые запросы и основы создания таблиц я поняла вроде. Но мне еще учиться и учиться:)
10 мар 15, 15:03    [17365059]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aljonushka
Но мне еще учиться и учиться:)

И что вы выучили из данной темы ?
10 мар 15, 15:04    [17365065]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Glory
Aljonushka
Но мне еще учиться и учиться:)

И что вы выучили из данной темы ?


В целом или сегодня?
10 мар 15, 15:09    [17365109]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aljonushka
Glory
пропущено...

И что вы выучили из данной темы ?


В целом или сегодня?

А "данная тема" - это сегодня или в целом ?
10 мар 15, 15:11    [17365117]     Ответить | Цитировать Сообщить модератору
 Re: Помогите досоставить запрос пжл  [new]
Aljonushka
Member

Откуда: Гамбург
Сообщений: 24
Glory
Aljonushka
пропущено...


В целом или сегодня?

А "данная тема" - это сегодня или в целом ?



...:)

Ну естественно что я уже не первый день за этим сижу... Вроде вы из Эстонии а не догоняю я (плоская шутка).

давайте прикратим эту тему.
10 мар 15, 15:19    [17365171]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить