2013-04-23 3 views
-1

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

Проблема в том, что он все еще показывает два результата в SQL-студии с 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' 

Strips and description, two different products, same patient

When i delete strips, still showing two results with empty description

my case statement returning nothing

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

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 

Я не получаю любые строки или столбцы a nd возвращается (без названия столбца) и внутри NULL

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

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

IMAGE 2 Когда я удалить полоски, показывающие еще два результата с пустым описанием, не должны показать второй результат.

IMAGE 3 сазе

+0

случай, когда b.armcode равна нулю, то a.strips ELSE (что-то еще) конечные – criticalfix

+0

Полоски и описание одно и то же только в двух разных таблицах. Если у пациента есть продукт в полосках и в описании, он должен показывать оба или все (как многие из них есть), если у них есть только продукт в полосках, чем только идентификатор пациента и полоски. –

+2

Я дважды читал ваш вопрос, но не совсем понял. Не могли бы вы пояснить данные примера или посмотреть, можете ли вы воспроизвести его на [SQL Fiddle] (http://sqlfiddle.com/)? – Andomar

ответ

0

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

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

+0

Извините, если сначала вопрос был настолько запутанным. –

Смежные вопросы