Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как пересобрать таблицу, совместив некоторые столбцы? / 9 сообщений из 9, страница 1 из 1
02.02.2010, 10:41
    #36443790
init01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
В общем SQLite начал изучать недавно.
И вот первый завал:
Так как нету типа данных ДАТА, то в таблице дату разбил на три столбца ДЕНЬ, МЕСЯЦ, ГОД.
То есть таблица получалась примерно такая:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PROJECT    DIR   DAY  MONTH   YEAR   SIZE
project1  data1  01    01     2010    167
project1  data2  01    01     2010    23
project2  data1  01    01     2010    45
project2  data2  01    01     2010    97
project1  data1  02    01     2010    169
project1  data2  02    01     2010    24
project2  data1  02    01     2010    56
project2  data2  02    01     2010    97

Но вот прошло время и теперь я осознал, что для того чтобы легче было делать выборку по датам, необходимо сделать вот такую таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PROJECT    DIR    DATA       SIZE
project1  data1  20100101    167
project1  data2  20100101    23
project2  data1  20100101    45
project2  data2  20100101    97
project1  data1  20100102    169
project1  data2  20100102    24
project2  data1  20100102    56
project2  data2  20100102    97

Новая таблица уже заполняется постепенно скриптом.
Но вот как старые данные перекинуть в новую таблицу?
Не соображу чего-то никак.



___________________________________________________________________________
Учиться на ошибках, особенно чужих, значит сделать свою жизнь скучной.
...
Рейтинг: 0 / 0
02.02.2010, 10:59
    #36443847
Как пересобрать таблицу, совместив некоторые столбцы?
Im27th,

если поля DAY, MONTH, YEAR не содержат Null, то можно так
Код: plaintext
1.
insert into NewTable(PROJECT, DIR, DATA, SIZE)
select PROJECT, DIR, DAY || MONTH ||  YEAR, SIZE from OldTable;

рекомендую почитать
раздел 1.2 Date and Time Datatype
...
Рейтинг: 0 / 0
02.02.2010, 11:00
    #36443851
Как пересобрать таблицу, совместив некоторые столбцы?
сорри, линк не прицепился:

http://www.sqlite.org/datatype3.html
...
Рейтинг: 0 / 0
02.02.2010, 16:53
    #36445086
init01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
Гость_в_Горле
Спасибо!

Только вот хреново, что дата к примеру 3 января 2010 записывается в новую таблицу как 201013, а не как 20100103. Как бы туда вставить нолик ... хотя бы искуственно, типа:

Код: plaintext
1.
2.
3.
4.
insert into NewTable(PROJECT, DIR, DATA, SIZE)
select PROJECT, DIR, YEAR || '0' || MONTH || '0' || DAY, SIZE from OldTable where DAY <  10 ;

insert into NewTable(PROJECT, DIR, DATA, SIZE)
select PROJECT, DIR, YEAR || '0' || MONTH || DAY, SIZE from OldTable where DAY >  10 ;

Не могу найти какой правильно синтаксис будет.




__________________________________________________________________________
Учиться на ошибках, особенно чужих, значит сделать свою жизнь скучной.
...
Рейтинг: 0 / 0
02.02.2010, 18:01
    #36445392
init01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
Всё, именно так всё и получилось.



__________________________________________________________________________
Учиться на ошибках, особенно чужих, значит сделать свою жизнь скучной.
...
Рейтинг: 0 / 0
02.02.2010, 18:17
    #36445455
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
Код: plaintext
1.
insert into NewTable(PROJECT, DIR, DATA, SIZE)
select PROJECT, DIR, YEAR || substr('0'||MONTH,- 1 ,- 2 ) || substr('0'||DAY,- 1 ,- 2 ), SIZE from OldTable where DAY >  10 ;
...
Рейтинг: 0 / 0
05.02.2010, 00:11
    #36450862
shurokan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
Вобщето я использую в Sqlite тип Date и даже не знал, что такого поля в нем нету:) Или я чегото не понял?
...
Рейтинг: 0 / 0
05.02.2010, 07:32
    #36450982
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
shurokanИли я чегото не понял?
Я не понял, чего ты не понял :)
...
Рейтинг: 0 / 0
05.02.2010, 18:24
    #36452749
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как пересобрать таблицу, совместив некоторые столбцы?
shurokanВобщето я использую в Sqlite тип Date и даже не знал, что такого поля в нем нету:) Или я чегото не понял?В SQLite нету типа date. Зато есть несколько встроенных функций по работе с датами в текстовом представлении.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как пересобрать таблицу, совместив некоторые столбцы? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]