|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Есть две таблицы: T1: startperiodendperiodvalue12015-01-012015-12-31102016-01-012016-12-3120 T2: startperiodendperiodvalue22015-01-102015-02-151502015-02-162015-07-211702015-07-222016-03-041902016-03-052016-10-30210 Обе непрерывны по периодам (каждая след. запись начинается на плюс один день от предыдущей). Первая всегда больше второй (по полю endperiod). Необходимо вторую таблицу разделить первой полем endperiod: startperiodendperiodvalue2value12015-01-102015-02-15150102015-02-162015-07-21170102015-07-222015-12-31NULL102016-01-012016-03-04190202016-03-052016-10-3021020 Вроде просто, но возникает проблема, когда во второй таблице есть запись, где endperiod = 2015-12-31. Можно ли добиться результата одним запросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2016, 15:33 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Teck, Забыл: ASA 12.0.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2016, 15:51 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Teck, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2016, 05:51 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, Спасибо, но не работает, если во второй таблице во второй строке endperiod = 2015-12-31. В этом случае на выходе должно остаться 4 строки, т.к. совпадает endperiod. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2016, 12:33 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
TeckДобрый Э - Эх, Спасибо, но не работает, если во второй таблице во второй строке endperiod = 2015-12-31. В этом случае на выходе должно остаться 4 строки, т.к. совпадает endperiod.приведи набор данных, на котором "не работает", и желаемый результат на этих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2016, 12:48 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, Если во второй таблице во второй строке 2015-07-21 заменить на 2015-12-31, то должно получиться так: startperiodendperiodvalue2value12015-01-102015-02-15150102015-02-162015-12-31170102016-01-012016-03-04190202016-03-052016-10-3021020 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2016, 13:54 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Teck, тогда немного сложнее: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 12:41 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, И правда сложнее, но работает) А что делает конструкция: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
? PS: в t2 гарантировано периоды непрерывны и не пересекаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:21 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
TeckА что делает конструкция: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
TeckPS: в t2 гарантировано периоды непрерывны и не пересекаются.Это утверждение противоречит вот этому "дополнению" к "техническому заданию":TeckДобрый Э - Эх, Если во второй таблице во второй строке 2015-07-21 заменить на 2015-12-31, то должно получиться так:Потому как после такой замены в аккурат возникнут пересекающиеся интервалы: [2015-02-16, 2015-12-31] и [2015-07-22, 2016-03-04] (второй и третий интервал во второй таблице станут пересекаться в интервале дат от 2015-07-22 до 2015-12-31) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:10 |
|
|
start [/forum/topic.php?fid=55&fpage=5&tid=2009729]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 180ms |
0 / 0 |