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

Откуда:
Сообщений: 193
Добрый вечер!
Не могу объединить 2 таблицы как мне нужно:
Есть первая таблица:
Create Table #Items (Month int, Item_Id int, Value int)

И вторая:
Create Table #Interval (Date_To DateTime, MonthCount int)


Declare @Date_From DateTime = '01.06.2015', @Date_To DateTime = '01.03.2016'


В первой таблицы по каждому Item'y хранятся какие то данные за каждый месяц. А в таблице 2 - периоды, а именно для вышеуказанных значений @Date_From и @Date_To:

'01.09.2015'|3месяца
'01.12.2015'|6месяцев
'01.03.2016'|9месяцев

Мне нужно получить таблицу в которой по каждому Item'y будет сопоставлены значения по каждому из периодов, т.е.:
Month | ItemID | Value | MonthCount | Date_To |
6 1 200 3 '01.09.2015'
7 1 300 3 '01.09.2015'
8 1 200 3 '01.09.2015'
6 1 200 6 '01.12.2015'
7 1 300 6 '01.12.2015'
8 1 200 6 '01.12.2015'
9 1 400 6 '01.12.2015'
10 1 500 6 '01.12.2015'
11 1 600 6 '01.12.2015'
и т.д.

Подскажите по какому условию делать объединение пытался так, но это неправильно:

Select *
From #Items 
Inner Join #Interval I On DATETIMEFROMPARTS(Year(@Date_From), #Items.Month, 1, 0, 0, 0, 0) Between @Date_From And I.Date_To
9 дек 15, 17:57    [18536977]     Ответить | Цитировать Сообщить модератору
 Re: Объединение таблиц  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
RuslanSharipov,
автор
Подскажите по какому условию делать объединение

Дак это вы нам должны рассказать, по какому условию у вас эти таблицы коррелируют:)

вот например тут
'01.12.2015'|6месяцев
'01.03.2016'|9месяцев
если считать, что второй столбец, это период, то наблюдается пересечение периодов, что в этом случае должно быть?
9 дек 15, 18:23    [18537102]     Ответить | Цитировать Сообщить модератору
 Re: Объединение таблиц  [new]
RuslanSharipov
Member

Откуда:
Сообщений: 193
1 период будет с 01.06.2015 по 01.09.2015
2 период с 01.06.2015 по 01.12.2015
3 период с 01.06.2015 по 01.03.2016

Т.е. первые три месяца от начальной даты, затем первые 6, и первые 9
9 дек 15, 20:17    [18537569]     Ответить | Цитировать Сообщить модератору
 Re: Объединение таблиц  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
RuslanSharipov,

#Items - Month

например для Item_100, 2й месяц. Это февраль месяц к какому году относится? к 2015 или 2016? ко всем??

если у вас (2) и (3) период пересекаются, то что, деталь два раза выводить, или один?
10 дек 15, 12:17    [18539699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить