Оператор SQL или два

У меня есть SELECT утверждение, что тянет эти две разные полосы продукта. Когда я удаляю один из них с веб-сайта и повторно запускаю мое заявление, у меня все еще есть две строки, первый столбец имеет ARMCODE дважды (два результата), и во втором столбце есть описание для первого, но затем нет описания для второго (поскольку оно было удалено).

Проблема в том, что он все еще показывает два результата в SQL Studio с ARMCODE,

Если есть a.CODE_,a.strips по потреблению нужно показать, есть ли A.ARMCODE а также B.DESCRIPTION это нужно показать. Если есть только A.ARMCODE а также B.DESCRIPTION а другой был удален, почему он по-прежнему показывает два результата с a.CODE_ будучи вторым результатом и пустыми a.strips.

select a.ARMCODE,
       b.DESCRIPTION_
  from ARE.AAS.REORDER a
  left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
 where a.ARMCODE = 'ADSMANZS03'
   and b.MEDICAREID ='A4253'

union all

select a.CODE_,a.strips
  from event.dbo.intake a 
 where a.CODE_ = 'ADSMANZS03'

Полоски и описание, два разных продукта, один и тот же пациент

Когда я удаляю полосы, по-прежнему отображаются два результата с пустым описанием

мое заявление по делу не возвращает ничего

Я начал с нового оператора, используя case, и теперь использую несколько вложенных соединений:

select case when b.ARMCODE is null then a.strips
       end
  from (select *
          from ev.dbo.intake a
         where a.CODE_ = 'ADSMANZS03') a
left outer join(select a.ARMCODE,
                       b.DESCRIPTION_
                  from ARE.AAS.REORDER a
                  left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
                 where a.ARMCODE = 'ADSMANZS03'
                   and b.MEDICAREID ='A4253') b on a.CODE_=b.ARMCODE

Я не получаю никаких строк или столбцов, и он возвращает (без имени столбца) и внутри NULL

Надеюсь, это не слишком смущает. Заранее спасибо.

ИЗОБРАЖЕНИЕ 1 Полоски и описание, два разных продукта, один и тот же пациент

ИЗОБРАЖЕНИЕ 2 Когда я удаляю полосы, по-прежнему показывающие два результата с пустым описанием, не должен отображаться второй результат.

ИЗОБРАЖЕНИЕ 3 case case

1 ответ

Решение

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

select
coalesce(b.DESCRIPTION_,a.strips)
from(
select
*
from ev.dbo.intake a
where a.CODE_ = 'ADSMANZS03'
)a
left outer join(
select
a.ARMCODE,
b.DESCRIPTION_
from ARE.AAS.REORDER a
left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
where a.ARMCODE = 'ADSMANZS03'
and b.MEDICAREID ='A4253'
)b on a.CODE_=b.ARMCODE

COALESCE (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms190349.aspx

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