Re: Развернуть строки в колонки
От: night beast СССР  
Дата: 15.01.15 12:33
Оценка: 6 (1)
Здравствуйте, flаt, Вы писали:

F>Что-то я не соображу, как это сделать в SQL (sqlite).

F>Имеется таблица (точнее, csv) вида
F>
F> ---------------------
F>| id name value  time |
F> ---------------------
F>id1,name1,value1,time1
F>id1,name2,value2,time1
F>id1,name1,value1,time2
F>


F>Как это сделать?


насколько знаю, транспонирования в sqlite нет.

name1 и name2 тебе известны?
если нет, то боюсь что придется строить запрос с нужными столбцами в приложении.

если известны и я правильно понял вопрос, то как-то так:

select *
from (
    select * from table where name = 'name1'
) t1
full join (
    select * from table where name = 'name2'
) t2 on t1.time = t2.time


ну и надо решить, что делать с дублями, если они возможны
Отредактировано 15.01.2015 12:38 night beast . Предыдущая версия .
Re: Развернуть строки в колонки
От: paucity  
Дата: 15.01.15 15:26
Оценка: 3 (1)
Здравствуйте, flаt, Вы писали:

F>Что-то я не соображу, как это сделать в SQL (sqlite).


CASE есть в sqlite?
Five methods converting rows to columns
Многие и рады были бы испытать когнитивный диссонанс, но нечем.
Развернуть строки в колонки
От: flаt  
Дата: 15.01.15 11:55
Оценка:
Что-то я не соображу, как это сделать в SQL (sqlite).

Имеется таблица (точнее, csv) вида
 ---------------------
| id name value  time |
 ---------------------
id1,name1,value1,time1
id1,name2,value2,time1
id1,name1,value1,time2


то есть, строки "name,value". Хочу развернуть в таблицу вида "name=value":
 ---------------------
| id name1 name2 time |
 ---------------------
id1,value1,value2,time1
id1,value1,value2,time2


Как это сделать?
Re: Развернуть строки в колонки
От: SmartFox Казахстан  
Дата: 23.01.15 04:55
Оценка:
Здравствуйте, flаt, Вы писали:

F>Что-то я не соображу, как это сделать в SQL (sqlite).


F>Имеется таблица (точнее, csv) вида

F>
F> ---------------------
F>| id name value  time |
F> ---------------------
F>id1,name1,value1,time1
F>id1,name2,value2,time1
F>id1,name1,value1,time2
F>


F>то есть, строки "name,value". Хочу развернуть в таблицу вида "name=value":

F>
F> ---------------------
F>| id name1 name2 time |
F> ---------------------
F>id1,value1,value2,time1
F>id1,value1,value2,time2
F>


F>Как это сделать?

Сталкивался с подобной проблемой на Access через ADO. Долго искал решения, в итоге плюнул и вкрутил компонент MemTable из EhLib.
Понимаю, что решение далеко не идеал, но и кодер из меня не ахти какой...
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.