Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите трансформировать таблицу. / 12 сообщений из 12, страница 1 из 1
23.09.2013, 22:58:58
    #38405347
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Добрый день!
Есть таблица
sn_printer
столбцы
id_sn id_place name
1 2 A
2 2 B
3 1 C
4 8 D
5 3 E

трансформировать в таблицу
id_place id_place2 name name2
2 2 A B
1 NULL C NULL
8 NULL D NULL
3 NULL E NULL

значения id_place могут быть любыми, от 1 до бесконечности.

заранее, спасибо!
...
Рейтинг: 0 / 0
24.09.2013, 06:01:09
    #38405450
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Ferum1, делайте на клиенте. Проще будет раз в десять.
...
Рейтинг: 0 / 0
24.09.2013, 08:04:47
    #38405468
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
tanglirFerum1, делайте на клиенте. Проще будет раз в десять.???
Код: sql
1.
2.
3.
4.
5.
select a.id_place, b.id_place ip2, a.name, b.name nm2
from sn_printer a
left join sn_printer b on b.id_place=a.id_place
 and b.id_sn>a.id_sn
order by a.id_sn, b.id_sn;



Куда уж проще-то?
...
Рейтинг: 0 / 0
24.09.2013, 08:30:22
    #38405478
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Cygapb-007,

не думаю. Разве что записей строго по 2. А если больше? :)
...
Рейтинг: 0 / 0
24.09.2013, 08:31:59
    #38405480
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Cygapb-007Куда уж проще-то?
Ferum1значения id_place могут быть любыми, от 1 до бесконечности.т.е. ТСу надо не {id1,id2}, а {id1,id2,...,idN}, где N=select max(cnt) from (select id_place,count(*) cnt from thetable group by 1)
...
Рейтинг: 0 / 0
24.09.2013, 09:25:18
    #38405524
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Arhat109Cygapb-007,

не думаю. Разве что записей строго по 2. А если больше? :)
в столбце id_place могут быть одна или две одинаковые записи.

соответственно для этого надо два столбца, если трансформируются две строки с одинаковым id_place, заполнены все значения, если только одна строка появляются NULL.

под значениями id_place, я имел ввиду разные значения (а не только 1, 2, 3, 8), а количество столбиков всего два (id_place и id_place2).
...
Рейтинг: 0 / 0
24.09.2013, 11:19:34
    #38405677
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
любите вы додумывать за ТС

Не подошло бы - тогда либо на клиенте либо в динамике, но заранее усложнять-то зачем
...
Рейтинг: 0 / 0
25.09.2013, 09:25:07
    #38406791
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Cygapb-007tanglirFerum1, делайте на клиенте. Проще будет раз в десять.???
Код: sql
1.
2.
3.
4.
5.
select a.id_place, b.id_place ip2, a.name, b.name nm2
from sn_printer a
left join sn_printer b on b.id_place=a.id_place
 and b.id_sn>a.id_sn
order by a.id_sn, b.id_sn;



Куда уж проще-то?
Попробовал выводит лишнее значение 2 B (((
...
Рейтинг: 0 / 0
25.09.2013, 09:55:43
    #38406832
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
не пробовали LEFT убрать?
...
Рейтинг: 0 / 0
25.09.2013, 09:56:08
    #38406833
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
наврал...
...
Рейтинг: 0 / 0
25.09.2013, 09:59:47
    #38406841
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
  id_place, 
  case when count(*)>1 then id_place end id_place2, 
  min(name)name, 
  case when min(name)<>max(name) then max(name) end name2
from sn_printer 
group by id_place
...
Рейтинг: 0 / 0
25.09.2013, 10:24:24
    #38406874
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите трансформировать таблицу.
Cygapb-007
Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
  id_place, 
  case when count(*)>1 then id_place end id_place2, 
  min(name)name, 
  case when min(name)<>max(name) then max(name) end name2
from sn_printer 
group by id_place


Огромное спасибо, работает!!!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите трансформировать таблицу. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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