|
|
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Задача такая: Запрос выбирает записи из таблицы по диапазону Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Результат запроса: COL1COL210.05.201110015.05.201115017.05.2011200 Необходимо, чтобы даты, которых нет в таблице тоже присутствовали в результате запроса. В таком виде: COL1COL210.05.201110011.05.2011012.05.2011013.05.2011014.05.2011015.05.201115016.05.2011017.05.201120018.05.2011019.05.2011020.05.20110 Как бы мне это реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2011, 13:13:24 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Hello, pixela! You wrote on 20 мая 2011 г. 10:13:24: pixela> Необходимо, чтобы даты, которых нет в таблице тоже присутствовали в результате запроса. то чего нет, заселектить невозможно. тебе нужен дополнительный объект а-ля "календарь". динамически формируемый, либо статический - не суть важно. цепляй его к запросу. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2011, 13:16:39 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Ну почему же. Можно ещё процедурой и циклом WHILE. Но правильнее всё же ПРОИЗВОДСТВЕННЫЙ_КАЛЕНДАРЬ LEFT JOIN TAB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2011, 13:38:33 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, WildSery, Спасибо за ответ. Таблицу с календарем была мысль создать, но подумал, что может есть какое-нибудь более интересное решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2011, 15:07:46 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
подскажите как динамически формировать календарь за указанный период ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 17:57:05 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Используя цикл WHILE. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 17:58:44 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
используя при этом DATEADD(), правильно я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 18:09:03 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
sidiscomиспользуя при этом DATEADD(), правильно я понимаю? Достаточно просто прибавлять единичку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 18:11:40 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
sidiscomподскажите как динамически формировать календарь за указанный периодЁмкостью до 37 и 5 / 12 лет хватит ? Если да, то подставляйте стартовую дату вместо '01.01.2000' и ограничивайте числом строк, которое надо. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 19:14:50 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Таблоидsidiscomподскажите как динамически формировать календарь за указанный периодЁмкостью до 37 и 5 / 12 лет хватит ? Если да, то подставляйте стартовую дату вместо '01.01.2000' и ограничивайте числом строк, которое надо. Код: sql 1. 2. 3. 4. 5. 6. Большое спасибо за идею читая форум в поиске решения данной задачи, получил следующий запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. прошу высказать свое мнение и возможные вариант оптимизации запроса (я только учусь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 01:59:11 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 06:28:08 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
sidiscomпрошу высказать свое мнение и возможные вариант оптимизации запроса (я только учусь) Тоже самое, но как по мне гораздо проще для понимания Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:17:02 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
m_Sla Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Спасибо за вариант, есть вопрос как в вашем варианте присоединить left join, данные из другой таблице ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:31:07 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
m7msidiscomпрошу высказать свое мнение и возможные вариант оптимизации запроса (я только учусь) Тоже самое, но как по мне гораздо проще для понимания Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Спасибо большое. Вариант действительно прост для понимания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:32:54 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
sidiscom, вместо блока сделать процедуру и цепляй куда угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:33:25 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Как вариант Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:43:27 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
описался CREATE EXCEPTION E_INCORRECT_DATE_RANGE '~Дата окончания больше даты начала~'; и WHILE (BYDATE <= ADATE_END) DO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:45:49 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Симонов Денисописался CREATE EXCEPTION E_INCORRECT_DATE_RANGE '~Дата окончания больше даты начала~'; и WHILE (BYDATE <= ADATE_END) DO не хочется использовать процедуру, хотелось все выполнить запросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:03:08 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
sidiscom, тогда вот вариант на мой взгляд более понятный Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. но у него один существенный минус. Он расчитан всего на 1023 дня из за ограничения на глубину рекурсии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:16:53 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Симонов Денисно у него один существенный минус. Он расчитан всего на 1023 дня из за ограничения на глубину рекурсии + Рекурсивный запрос немного выигрывает у процедуры. Сравнение, возможно, не самое корректное: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext GENERATE_SERIAL Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: sql 1. 2. 3. 4. Код: plaintext Отсутствие опции глубины рекурсии не даёт использовать такие запросы (генераторы последовательностей) на 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:39:00 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Как то давно, давно в начале изучения SQL, было написано такое. Иногда пользуюсь. Код: plsql 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 16:45:56 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикИногда пользуюсь.В открытом море не взлетает. Мешают наколенники StartOfThe(DateFrom, iPeriod) и EndOfThe(DateTo, iPeriod) (про b_upper не говорю, там всё понятно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:12:10 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик, если все эти UDF есть в базе на FB 2.5 могу только посочувствовать. Давно бы уж на встроенные функции перевёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:27:28 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Ованес СусанянЕвгений БолтикИногда пользуюсь.В открытом море не взлетает. Мешают наколенники StartOfThe(DateFrom, iPeriod) и EndOfThe(DateTo, iPeriod) (про b_upper не говорю, там всё понятно). Согласен. Могу и их дать, если надо. Вообще как идею единой процедуры на все случаи жизни рассматривали, но так давно что не помню когда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:53:14 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисЕвгений Болтик, если все эти UDF есть в базе на FB 2.5 могу только посочувствовать. Давно бы уж на встроенные функции перевёл. Код писался давно. Работает. Голова другим озадачена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:55:25 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикСогласен. Могу и их дать, если надо.Большое спасибо, но не надо. Отвязались от УДФок еще в 2010, оставили только несколько таких, которые отвечают за форматирование дат и чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 18:35:46 |
|
||
|
Как получить все даты диапазона в столбец
|
|||
|---|---|---|---|
|
#18+
Ованес Сусанян, и те можно будет выкинуть в тройке, т.к. можно писать PSQL функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 19:37:50 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1564273]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 180ms |
| total: | 419ms |

| 0 / 0 |
