|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Господа подскажите пожалуйста! Есть таблица : create table "informix".downtime ( did serial not null , stop_time datetime year to second, start_time datetime year to second, uptime integer, primary key (did) constraint "informix".pk_downtime ); revoke all on "informix".downtime from "public" as "informix"; первые 2 столбца stop_time и start_time заполнены данными, как из значения в строке N в 1 столбце отнять значение N-1 во втором и записать результат в N-ную строку столбца uptime ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:14 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986 первые 2 столбца stop_time и start_time заполнены данными, как из значения в строке N в 1 столбце отнять значение N-1 во втором и записать результат в N-ную строку столбца uptime ??? В чём? В секундах? Не поверишь - поиск по форуму по "разность дат" рулит :) тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:27 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
пардон, про разные строки провтыкал... минутку... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:28 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Да можно и в секундах! через select вывожу данные в одну строку, а как вычесть и вписать хз ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:35 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TOP 1 подзапрос или чего там есть похожего в Infirmix-е. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:37 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Видимо, First 1-подзапрос нужно юзать... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:40 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, нельзя first в подзапросах. PaulS1986, Пример напишите, с содержимым таблицы, с желаемым результатом ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 13:50 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:02 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Журавлев ДенисДобрый Э - Эх, нельзя first в подзапросах. PaulS1986, Пример напишите, с содержимым таблицы, с желаемым результатомА агрегированный подзапрос можно? Ну, что-то в духе: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:03 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Журавлев ДенисДобрый Э - Эх, нельзя first в подзапросах. PaulS1986, Пример напишите, с содержимым таблицы, с желаемым результатом Пример : did stop_time start_time uptime 13 2009-02-05 10:24:06 2009-02-05 10:28:19 14 2009-03-21 13:08:55 2009-03-21 13:10:28 желаемый результат : did stop_time start_time uptime 13 2009-02-05 10:24:06 2009-02-05 10:28:19 14 2009-03-21 13:08:55 2009-03-21 13:10:28 44 02:40:36 вот так должно получится в таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:21 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TmpFile(), Да примерно так, надо обмозговать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:23 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:38 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
from downtime d1, outer downtime d2 where d1.did=d2.did -1 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:43 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Журавлев Денис, Код: plaintext 1. 2.
Это будет нормально, если таблица накопительная и в нее данные не "перезаливают". Или там может быть разные устройства в одну и туже таблицу данные льют. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:51 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TmpFile() Код: 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.
TmpFile() ООооо.... ОГРОМНЕЙШЕЕ СПАСИБО!!! Я начало делал так же, но с селектами запутался! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 14:54 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TmpFile(), а где идентикатор устройства? мне как сказали я так и понял "отнять значение N-1" и под тестовый пример кстати мое решение подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 15:18 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
блин, рано радовался! ругается на : select d1.did, d1.stop_time - (select d2.start_time from downtime d2 where d2.did = (select max(did) from downtime where did < d1.did)) uptime from downtime d1 into temp t_downtime with no log; update downtime set uptime = (select uptime from t_downtime where did = downtime.did) -1260 It is not possible to convert between the specified types. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 15:21 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986, я так и не понял из вопроса и примера: uptime interval day to second, или uptime integer ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 15:27 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
uptime integer ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 15:38 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Тогда исправляйте: PaulS1986 желаемый результат : did stop_time start_time uptime 13 2009-02-05 10:24:06 2009-02-05 10:28:19 14 2009-03-21 13:08:55 2009-03-21 13:10:28 44 02:40:36 вот так должно получится в таблице 44 02:40:36 это не integer ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 15:54 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Вот integer: cast( cast('44 02:40:36' as interval day to second) as interval second(9) to second)||' '+0 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 16:08 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
olleg, Спасибо! в раздумьях... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 16:12 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986olleg, Спасибо! в раздумьях... Спасибо не мне, а АнатоЛой, за его ссылку в первом же посте ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 16:21 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TmpFile() Код: 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.
TmpFile() есть вопросы : в строке where did < d1.did)) uptime может должно быть так :where did < d1.did)) d1.uptime ??? что есть t_downtime ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 20:20 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986 TmpFile() есть вопросы : в строке where did < d1.did)) uptime может должно быть так :where did < d1.did)) d1.uptime ??? uptime есть имя столбца, полученного для текущего d1.did как d1.stop_time - (select d2.start_time from downtime d2 where d2.did = (select max(did) from downtime where did < d1.did)) PaulS1986 что есть t_downtime ? t_downtime есть имя создаваемой временной таблицы, хранящей результат выполнения select ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2009, 20:49 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
АнатоЛойPaulS1986 что есть t_downtime ? t_downtime есть имя создаваемой временной таблицы, хранящей результат выполнения select Этот огород с временной таблицей от того, что в UPDATE нельзя использовать конструкцию с подзапросом из модифицируемой таблицы. Да и вообще читать документацию и теорию учить. Может вам вполне сгодиться вид (view) создать, на основе запроса приведенного выше, и уже его использовать для поставленных целей. Кстати, именно от них все и зависит. Для чего вообще этот огород нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2009, 01:01 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
TmpFile(), Этот огород нужен для вычисления времени работы от включения до выключения ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2009, 10:41 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986, Вы несколько не так поняли вопрос... Насколько часто эта операция нужна? если эти данные нужно хранить постоянно - то варианта как минимум 2: 1. Делать вычисление uptime оперативно и сохранять сразу по факту занесения очередной записи в таблицу 2. Делать обновление строк периодически - для которых uptime is null 3 вариант: каждый раз считать его на лету. Всё это время обсуждался как раз второй вариант. Я бы выбрал 1-ый. А может вас вполне устроит 3-ий - без поля в самой таблице... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2009, 17:56 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Господа, добил я этот скрипт, вот что получилось : STOP='YYYY-MM-DD HH:MM:SS' START='YYYY-MM-DD HH:MM:SS' # dbaccess dbadb <<EOF! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Всем СПС за помощь!!!:) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 11:12 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986 .......d1.stop_time - (select d2.start_time PaulS1986, пользуй кнопку "SRC"... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 11:32 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
ollegВот integer: cast( cast('44 02:40:36' as interval day to second) as interval second(9) to second)||' '+0 А как лучше изменить этот запрос, если дата не '44 02:40:36' а скажем '144 02:40:36' ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 16:07 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
PaulS1986ollegВот integer: cast( cast('44 02:40:36' as interval day to second) as interval second(9) to second)||' '+0 А как лучше изменить этот запрос, если дата не '44 02:40:36' а скажем '144 02:40:36' ? А что не так в запросе? Какую ошибку возвращает сервер? А в чем разница между этими двумя выражениями: interval second to second interval second(9) to second ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 17:05 |
|
Заполнение столбца в таблице из результатов предыдущих столбцов
|
|||
---|---|---|---|
#18+
Если число дней больше 100 вылазит ошибка : 1265: Overflow occurred on a datetime or interval operation. Error in line 4 Near character position 14 а если меньше то работает О_о ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 12:01 |
|
|
start [/forum/topic.php?all=1&fid=44&tid=1607711]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 490ms |
0 / 0 |