Мне нужно совместить дату действия пользователя с их номером подписки в то время. Одна запись в таблице Subscription
относится к нескольким строкам в таблице Action
, а связь между ними - это не месяц (!) Или месяц + год, поскольку подписка длится в течение многих месяцев, когда пользователь предпринимает действия до появления новой даты подписки в действие.Соответствие записи с несколькими записями в SQL Server (множественные отношения)
E.g. все даты действий пользователя, предпринятые между июнем 2011 года по март 2012 года, должны относиться к дате мая 2011 года, потому что эта дата подписки действовала до тех пор, пока в мае 2012 года не была подписана следующая подписка, и этот был продолжен, еще один был сдан в августе 2015 года.
У меня есть пользователи с различным количеством подписки, поэтому код должен быть достаточно общим, чтобы охватить несколько или несколько подписей или дат действий.
Например, в ТВ1 с бревнами действий пользователя У меня есть несколько записей
Jun, 2011 (should link to Subnumber1 active between May 2011- Apr 2012)
Aug, 2011 (should link to Subnumber1 active between May 2011- Apr 2012)
Dec, 2011 (should link to Subnumber1 active between May 2011- Apr 2012)
Mar, 2012 (should link to Subnumber1 active between May 2011- Apr 2012)
May, 2012 (should link to Subnumber2 active between May 2012- Jul 2015)
Jun, 2015 (should link to Subnumber2 active between May 2012- Jul 2015)
Тогда в другой таблице у меня есть подписка на номера пользователя
May, 2011 Subnumber1
May, 2012 Subnumber2
Aug, 2015 Subnumber3
Так в основном, за действия, состоялось в мае 2012 года, запрос должен быть возвращен. Subnumber2
Буду признателен за любую помощь!
Можете ли вы опубликовать образцы данных? Вы используете реальные даты или только месяц, год? –
Вы должны опубликовать свои определения таблиц. В отсутствие этого, похоже, будет простой запрос «SELECT * FROM Subscriptions INNER JOIN Actions ON Actions.ActionDate BETWEEN Subscriptions.StartDate AND Subscriptions.EndDate' –
Единственная проблема заключается в том, что между датой начала и Дата окончания. Каждый раз, когда они продлевают подписку, она становится еще одной датой начала. – Maggie