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

Откуда:
Сообщений: 10
Добрый день!
Есть стандартная таблица: ID товара и Дата когда этот товар присутствовал на складе.
Мне нужно по каждому дню посчитать какое количество ID фигурировало вчера, но не фигурирует сегодня.
JOIN - не вариант из-за количества дней.
4 май 17, 15:21    [20457340]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
Rankatan
Member

Откуда:
Сообщений: 250
Сервер какой?
4 май 17, 15:34    [20457416]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
uaggster
Member

Откуда:
Сообщений: 768
AmicusVlad
Добрый день!
Есть стандартная таблица: ID товара и Дата когда этот товар присутствовал на складе.
Мне нужно по каждому дню посчитать какое количество ID фигурировало вчера, но не фигурирует сегодня.
JOIN - не вариант из-за количества дней.

Create table #t (ID int, DT date);

insert into #t
Values (1, '20150101'),
(1, '20150102'),
(1, '20150103'),
(1, '20150105'),
(2, '20150102'),
(2, '20150103'),
(3, '20150105')

Select DT, Sum([Kolvo]) t2 
From (
Select DT, Count(ID) [Kolvo] from 
	   (
	   Select ID, dateadd(day, 1, DT) DT
		  from #t
	   except
	   Select ID, DT
		  from #t
	   ) t
Group by DT
Union 
Select DT, 0 from #t) t2
Group by DT

Drop table #t
4 май 17, 15:38    [20457434]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2169
AmicusVlad
Добрый день!
Есть стандартная таблица: ID товара и Дата когда этот товар присутствовал на складе.
Мне нужно по каждому дню посчитать какое количество ID фигурировало вчера, но не фигурирует сегодня.
JOIN - не вариант из-за количества дней.

???
У вас в системе учет идет от юрского периода? Или в качестве сервера персоналка 20летней давности?
4 май 17, 15:39    [20457443]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
AmicusVlad
Member

Откуда:
Сообщений: 10
Rankatan
Сервер какой?


У меня локально установлен MS SQL Server 2008
Приложил описание, надеюсь вопрос в этом

К сообщению приложен файл. Размер - 38Kb
4 май 17, 15:44    [20457467]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
AmicusVlad
Member

Откуда:
Сообщений: 10
uaggster, благодарю за изящное решение.
4 май 17, 15:49    [20457494]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
Rankatan
Member

Откуда:
Сообщений: 250
автор
Есть стандартная таблица: ID товара и Дата когда этот товар присутствовал на складе.


Количество хранится в отдельном столбце на указанную дату?
4 май 17, 15:49    [20457495]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
iiyama
Member

Откуда:
Сообщений: 642
uaggster, ТС просил без JOIN
,а вот здесь будет Left Anti Semi Join
	   Select ID, dateadd(day, 1, DT) DT
		  from #t
	   except
	   Select ID, DT
		  from #t
4 май 17, 16:05    [20457561]     Ответить | Цитировать Сообщить модератору
 Re: Анализ периодов в рамках одной таблицы  [new]
uaggster
Member

Откуда:
Сообщений: 768
iiyama
uaggster, ТС просил без JOIN
,а вот здесь будет Left Anti Semi Join
	   Select ID, dateadd(day, 1, DT) DT
		  from #t
	   except
	   Select ID, DT
		  from #t

Ненене! Нещитово!
Как там энжин просчитывает эту синтаксическую конструкцию - его личное половое горе.
Пусть хоть на пальцах перебирает!

Формально - join'а нету. :)
5 май 17, 11:13    [20459787]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить