Оператор 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