2016-01-14 3 views
0

Как объединить эти два запроса?Вложенные данные Если выбрано

select e.UserId, count(*) as [Registrations], min(uas.UserId), min(uas.[TimeStamp]) 
from Ev as e 
    left join UAS as uas on e.UserId = uas.UserId 
where e.EventTypeId = 3 and e.Value is not null 
group by e.UserId 
having count(*) >= 10 

if not exists (select * from Ev as e left join UAS as uas 
        on e.UserId = uas.UserId where uas.UserId = e.UserId) 
begin 
    insert UAS values (12, '2013-05-31 15:54:14.963') 
end; 

Я хочу, чтобы, если этот UserId не существует в таблице UAS, вставьте его.

+0

Первый запрос выбирает данные и второй вставки на основе некоторого условия. Как должен действовать ваш потенциальный «комбинированный» запрос? Должна ли она вставить что-то или выбрать некоторые «фиктивные» значения, если в результатах первого запроса нет результатов? –

+0

@ AndyKorneyev Я знаю, потому что спросил. Я хочу вставить, когда такого значения уже нет. – gsiradze

+0

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

ответ

0

Вы можете переписать ниже часть, используя WHERE NOT EXISTS

if not exists (select * from Ev as e left join UAS as uas 
        on e.UserId = uas.UserId where uas.UserId = e.UserId) 
begin 
    insert UAS values (12, '2013-05-31 15:54:14.963') 
end; 

Как

insert into UAS 
select 12, '2013-05-31 15:54:14.963' 
from Test // Test is a dummy dual table 
where not exists (
select 1 from Ev as e 
left join UAS as uas 
on e.UserId = uas.UserId where uas.UserId = e.UserId) 
+0

Хм ... как это должно решить задачу OP «объединить некоторые вставки запроса с другим запросом select»? –

+0

OP по существу проверяет, нет ли записи для объединенного запроса, а затем вставьте некоторые данные. Это можно сделать, используя конструкцию 'insert .. select'. Правильно ??? – Rahul

+0

Насколько я понял, его вопрос - он хочет объединить эту вставку с самым первым выбором запроса в вопросе (с тем, у кого есть группа). Возможно, я ошибаюсь - но он не проливал свет на это в комментариях. –

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