|
|
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
Есть табличка фиксации действий юзера по проводке документов, примерно с такими данными ID_OBJECT ID_ACTION ACTION_DATETIME 101 0 05.02.2003 9:09:13 101 1 10.02.2003 17:55:19 101 2 10.02.2003 17:55:25 101 1 10.02.2003 17:55:28 101 2 10.02.2003 17:55:39 101 3 10.02.2003 17:55:41 101 4 10.02.2003 17:55:44 101 3 10.02.2003 17:55:52 101 2 10.02.2003 17:57:02 101 1 10.02.2003 17:57:45 101 0 10.02.2003 17:58:08 Необходимо написать запрос, который вернет 1, если строка с ID_ACTION=2 по времени после строки с ID_ACTION=3, или 0 - если перехода из 3 в 2 не было. В голову пришел вариант select decode(id_action, 2, 1, 0) from table where id_object = 101 and rownum=1 and action_datetime > (select action_datetime from table where id_object = 101 and id_action = 3 and rownum=1)) Но он не верен для приведенного примера, вот если бы модно было так - select decode(id_action, 2, 1, 0) from table where id_object = 101 and rownum=1 and action_datetime > (select action_datetime from table where id_object = 101 and id_action = 3)) , без and rownum=1 в подзапросе. Но так нельзя... И как решить задачку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 08:24 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
надо использовать аналитические функции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 08:47 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
Уточню - оракл 8.1.7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 09:13 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
select count(*) from dual where exists (select 1 from kva_test a where id_object=101 and id_action=2 and exists (select 1 from kva_test b where a.id_object=b.id_object and b.id_action=3 and a.action_datetime>b.action_datetime)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 09:17 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
select count(*) from dual where exists ( select null from kva_test a, kva_test b where a.id_object=101 and a.id_action=2 and b.id_object=101 and b.id_action=3 and a.action_datetime>b.action_datetime ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 10:11 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#18+
И ведь точно, всё просто :-) Это старость приближается :-) Или работа без отпусков и выходных... Или суета перед свадьбой влияет ... ОК, всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 10:19 |
|
||
|
Не могу разобраться с запросом...
|
|||
|---|---|---|---|
|
#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. выполнение, когда 2 > 3 Код: 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. выполнение, когда 3 > 2 Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2003, 10:24 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32122567&tid=1991426]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
211ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 563ms |

| 0 / 0 |
