|
|
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Гложет смутное предчувствие что это сделать нельзя, но посоветуйте начинающему как лучше сделать: Есть две даты. Хотелось бы одним запросом получить все даты между ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 12:23 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Можно, и есть несколько способов. Например, можно создать таблицу с одной колонкой, в которую занести все даты за несколько лет вперёд и назад, и делать выборку из неё. Можно на лету генерировать, базируясь на какой-нибудь заведомо длинной таблице или представлении (чтобы количество строк было не меньше количества дней в рассматриваемом периоде). В 9i ещё как-то можно, сейчас кто-нибудь подскажет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 12:31 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Я так и думал, что сейчас Денис ответит :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 12:34 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Ну дык:) В 9i, да и в 8i можно написать функцию с диапазоном дат в качестве аргументов, возвращающую объектную таблицу, и использовать ее в select'е. Принцип описан тут: http://otn.oracle.com/oramag/oracle/02-sep/o52sql.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 12:36 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Я вот поэкспериментировал и получил следующие результаты (не уверен, что мой код иделаен :) ) Код: plaintext 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. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 15:02 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Очень просто: [scr] select date_start + rownum -1 from all_objects where rownum < date_end - date_start + 1; [scr] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 16:48 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
А всё одно - любое использование all_objects вырождается в: 1. Тормоза 2. Ограничение по количеству возвращаемых строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 17:18 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Mogesh primenit LUBUYU tablu, kakuyu schitaesh nugnoy, prosto all_objects vsegda pod rukoy. Dalee ogranichenie v 3000-5000 zapisey dlia takih zaprocov to kalendar na 5-10 let. Vpolne dostatochno. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 17:56 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Что-то мне это не нравится: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 18:29 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. Но интересно, если повторить запрос: Код: plaintext 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. А предыдущий запрос от Scott Tiger у меня постоянно 425 consistent gets выдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 18:47 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Ну это pipelined, сиречь девятка... У меня после многочисленных прогонов свелось к варианту Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Я вот всё жду, может, какой-нибудь деятель выдаст классический вариант с вьюхой и union all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 19:09 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Если только даты тащить, без всяких джоинов с таблицами с данными, получается такая картина: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2003, 19:44 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Для 8i вроде так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2003, 11:00 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2816&tid=1992059]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 322ms |

| 0 / 0 |
