SQL Преобразование одного столбца в два на основе другого столбца - PullRequest
0 голосов
/ 08 мая 2018

Со следующим набором данных:

Extender_Record_ID: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
Field_ID: 100, 101, 100, 101, 100, 101, 100, 101, 100, 101
Date: 1/1/2018, 1/2/2018, 1/14/2018, 1/15/2018, 2/1/2018, 2/3/2018, 
      2/15/2018, 2/17/2018, 3/2/2018, 3/5/2018

Я пытаюсь получить вывод:

Start Date: 1/1/2018, 1/14/2018, 2/1/2018, 2/15/2018, 3/2/2018  
End Date: 1/2/2018, 1/15/2018, 2/3/2018, 2/17/2018, 3/5/2018

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

Извините, я новичок в этом. Любая помощь очень ценится!

Ответы [ 3 ]

0 голосов
/ 08 мая 2018
select extendedrecordid, field_id, max(case when field_id = 1 then date else null end )date1,
max(case when field_id = 2 then date else null end )date2
from yourtable group by extendedrecordid, field_id
0 голосов
/ 08 мая 2018

Что вам, вероятно, действительно нужно, основываясь на вашем комментарии I got the min and max query to produce what i needed for the minor example. примерно так:

SELECT 
CASE WHEN Id = 1 THEN [DateField] END AS Date1, 
CASE WHEN Id = 2 THEN [DateField] END AS Date2
FROM [MyTable]
0 голосов
/ 08 мая 2018

Это так же просто, как то, что каждый всегда является min, а другой - max, вы можете просто сделать:

SELECT MIN(DATE) AS Date1
     , MAX(DATE) AS Date2
  FROM ...
GROUP BY ID

Или, может быть, что-то более сложное с осью, но нам, вероятно, нужно знать SQL-код для этого

...