|
|
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите, не могу решить так сделать выборку. Вообщем, такая задача. Есть таблица с номерами договоров, номерами подразделений, что открыли договор, датами начала и конца (около 14 тис.строк): ID_department ID DATA_BEGIN DATA_END12 1342112.01.1999 10: 50:0012.09.2999 10:50:00 12 1352211.02.2004 00:00:0002.08.2015 00:00:0010 1592315.02.2014 13:00:0005.06.2018 13:00:0010 1932413.03.2013 00:00:0008.07.2017 09:00:00 15 1952512.09.2000 00:00:0003.04.2016 00:00:00......... Нужно сделать выборку сколько активных договоров было в промежутке времени (к примеру с 01.08.2016 - 31.12.2016) с группировкой по месяцам: ID_department SUM(ID) Month-year12 2 01.09.201612 2 01.10.201612 3 01.11.201610 21 01.12.201610 23 01.09.201610 23 02.10.201610 25 03.11.2016......... Есть у кого то варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 12:28:18 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Откройте для себя trunc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 12:40:49 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
dmdmdm, спасибо, но здесь больше вопрос как искать внутри диапазона за месяца, а потом сгруппировать по соответственным месяцам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 14:15:51 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
year(date)*1000000+month(date) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 14:21:24 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
982183, бред. Jeka99 зачем искать внутри диапазона? почему не разбить диапазон на месяца как Вам и советуют и не сгруппировать по месяцам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 14:25:11 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Точно бред. Не прочитал всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 14:32:15 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 14:37:15 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Vint, отдельными выборками я умею выбирать помесячно с диапазона. А от как его "автоматизировать", что бы не делать 10 выборок с: DBEGIN <= TO_DATE('31.05.2015','DD/MM/YYYY') and ea.DEND >= TO_DATE('01.05.2015','DD/MM/YYYY'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:06:04 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Хорошим тоном считается подготовить test case и задавать вопрос по нему. Я терпеливый и сделаю еще одну воспитательную попытку. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:14:04 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
dmdmdm, ТСу ваш пример не поможет. Ему нужно один и тот же договор отразить по нескольким месяцам, а у вас один договор попадет в один месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:44:14 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:45:43 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:52:11 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Jeka99, мне лень (счас нет времени) набирать данные, если будет в виде with t(ID_department, ID, DATA_BEGIN, DATA_END ) as ( select ) select * from t сделаю еслі коротко то для каждого періода надо сгенерить месяца между DATA_BEGIN, DATA_END потом сгрупировать ps генерить можно по разному ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 15:56:39 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
dmdmdm, Вот test-case, там выборка за 1 месяц. Нужно автоматически за каждый месяц. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 16:16:58 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
stax.., test case добавил выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 16:18:20 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Jeka99, снимись с ручника и прекрати изображать чукчу писателя. пройди по ссылке и адаптируй под себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 16:30:34 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Vint, если все было так просто сделал бы, у мене не выходит к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 16:50:51 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Jeka99stax.., test case добавил выше накидал по быстрому, проверте на границах диапазонов Код: 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. зы -1 возможно лішнее ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 16:51:27 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
stax.., все прекрасно работает, огромное Вам спасибо! На диапазоне тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 17:14:34 |
|
||
|
Сгруппировать данные по месяцам (за периоды)
|
|||
|---|---|---|---|
|
#18+
Jeka99stax.., все прекрасно работает, огромное Вам спасибо! На диапазоне тоже. для діапазона мона попроще + месяцы когда 0 договоров проверте генерацію месяцов с учетом специфики month-between ,m as (--генерим необходимые месяцы select add_months(TO_DATE('01.01.2015','DD/MM/YYYY'),rn) mg from xmltable('0 to xs:integer($n)' passing months_between(TO_DATE('31.05.2015','DD/MM/YYYY'),TO_DATE('01.01.2015','DD/MM/YYYY')) as "n" columns rn number path '.') ) Код: 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. 73. 74. 75. 76. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2016, 18:12:40 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39311378&tid=1887434]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
119ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 443ms |

| 0 / 0 |
