nityanand NCR Ответов: 2

Как сделать строку в столбец в SQL server


У меня есть таблица, в которой содержится такое значение, как
create table tableName (
dattime datetime, id int)

insert into tableName (dattime,id) values ('2019-05-07 07:15:000',1)
insert into tableName (dattime,id) values ('2019-05-07 13:50:000',1)
insert into tableName (dattime,id) values ('2019-05-07 07:15:000',2)
insert into tableName (dattime,id) values ('2019-05-07 13:50:000',2)

dattime                 | id
2019-05-07 07:15:00.000	| 1
2019-05-07 13:50:00.000	| 1
2019-05-07 07:15:00.000	| 2
2019-05-07 13:50:00.000	| 2 



Мой вопрос заключается в том, как сделать это значение как

id  |   col1              | col2
1   |   2019-05-07 07:15  | 2019-05-07 13:50
2   |   2019-05-07 07:15  | 2019-05-07 13:50


Пожалуйста, помогите!.....

Что я уже пробовал:

SELECT id, dattime FROM   
(SELECT id, dattime  FROM tableName )col1
PIVOT  (  
max(id) FOR dattime IN (dattime)) AS col2

Jörgen Andersson

Нет ничего определяющего, что должно стать Col1 и Col2.
И как бы вы справились со случаем, когда есть три строки для идентификатора?

2 Ответов

Рейтинг:
9

Aravindba

Привет
Я думаю , что вам нужно получить данные в коде, как вы упомянули выше, может быть, для отчета или диаграммы, лучше объявить таблицу данных и использовать запрос для извлечения одного за другим и динамической привязки значения в этой таблице данных с помощью программного кода.

используйте этот запрос только для получения идентификатора

select id  from tablename group by id
, затем цикл с результатом,
e:g id '1 и 2 u получат по 2 результата каждый,
Итак, первое значение привязки, приведенные в колонках 1 и 2 Значение привязки в столбец 2 , такие же как для удостоверения личности - 2
первое значение привязки, приведенные в колонках 1 и 2 Значение привязки в col 2

С уважением,
Аравинд


Рейтинг:
17

OriginalGriff

Самый простой способ-это просто использовать GROUP BY:

SELECT ID, MIN(Dattime) AS Col1, MAX(Dattime) As Col2
FROM tableName 
GROUP BY ID


nityanand NCR

5

Aravindba

5+,