Запрос Oracle, который имеет другое предложение where для каждого столбца
У меня есть таблица Oracle со следующими строками:
Машина
OEEDate
Shift1
Шифт2
Shift3
Данные имеют вид, похожий на этот:
500, 8/1/2017, 0, 0, 1
500, 8/2/2017, 1, 1, 1
У меня в таблице есть данные за целый год. У меня также есть около 50 различных машин для каждого свидания. Я хотел бы сделать запрос, в котором я мог бы отобразить данные за целые недели (7 дней с понедельника по воскресенье) для конкретной машины, но данные должны отображаться в Столбцах, а не в нескольких строках. Вот что я ищу. Чтобы упростить ситуацию, я показываю данные только за 2 дня. Поскольку одно и то же имя столбца повторяется, мне нужно будет переименовать каждый столбец для каждого дня.
машина, oeedate-м Shift1-м, Шифт2-м, сдвиг 3-м oeedate-Т Shift1-Т Shift3-Т
500, 8/1/2017, 0, 0, 1, 8/2/17, 1, 1, 1
Что я уже пробовал:
Я думаю, что это было бы приложение для использования оператора case, но я не могу понять правильный синтаксис. Я использовал оператор Case только один раз, так что я довольно новичок в его использовании. Это то, что я пробовал, но это не работает:
select machine, oeedate, shift1, shift2, shift3, (case when oeedate = TO_DATE('08/01/2017 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM') then oeedate end) as shift1A, (case when oeedate = TO_DATE('08/02/2017 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM') then oeedate end) as shift1B from plannedproductiontimes where machine = '500'
Если это имеет значение, то в данный момент мы все еще используем Oracle 9.