СЛУЧАЙ С НЕСКОЛЬКИМИ ЗАЯВЛЕНИЯМИ SELECT

Я пытаюсь поместить оператор select в кейс, но не могу правильно его выразить.

Первый оператор case в порядке, но проблема со вторым.

Может кто-нибудь помочь мне с правильным синтаксисом,

select u.unit_id,
       u.order_code,
       u.order_item,
       u.roll_sheet,
       u.date_wound,
       u.date_shipped,
       u.unit_status,
       u.warehouse_code,
       (case
         when u.unit_id_turnup is not null then
          (select u1.onput_id
             from unit u1
            where u.unit_id_turnup = u1.unit_id)
         else
          u.onput_id
       end) "onput id",
       
       (case
         when u.unit_id_turnup is not null then
          (select CASE WHEN U1.UNIT_ID_TURNUP IS NOT NULL
             from unit u1 then (select u3.onput_id
                                  from unit u3
                                 where u1.unit_id_turnup = u3.unit_id) else u1.onput_id)
         else
          u.onput_id
       end) "onput id2",
  from unit u

Ваше утверждение case when искажено во втором запросе (CASE WHEN {} ELSE {} END), и у вас есть FROM в середине. Ваш запрос может быть лучше решен с помощью left join.

James 13.12.2020 11:09

Не могли бы вы немного подсказать, как @jamieDrq

Saad Azhar 13.12.2020 11:49

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

Gordon Linoff 13.12.2020 13:23
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
407
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я могу предположить, что код, который вы намереваетесь, это:

select . . . ,
       coalesce(u1.onput_id, u.onput_id) as onput_id,
       coalesce(u2.onput_id, u1.onput_id, u.onput_id) as onput_id2
from unit u left join
     unit u1
     on u.unit_id_turnup = u1.id left join
     unit u2
     on u1.unit_id_turnup = u2.id

Без выборочных данных и четкого объяснения это действительно просто предположение. Однако, похоже, это то, что вы пытаетесь сделать.

Это сработало так, как мне было нужно, большое спасибо @Gordon Linoff

Saad Azhar 13.12.2020 18:12

Другие вопросы по теме