Тема: sql запрос
Показать сообщение отдельно
  #6  
Старый 24.11.2011, 15:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Что-то вы не то сделали. Там все должно быть нормально. Если хотя-бы одно из значений в задачах для проекта не выполнено, то проект не выполнен и отображается. И наоборот. Вот тестовый проектик:
Код:
create table #Project (id int, name varchar(50))
create table #Task (id int, ProjectID int, name varchar(50), Status varchar(20))

insert into #Project (id, name) values(1,'Победить всех')
insert into #Project (id, name) values(2,'Захватить власть')
insert into #Project (id, name) values(3,'Развязать войну')

insert into #Task (id, ProjectID, name, Status) values(1, 1, 'Накопить денег', 'Выполнено')
insert into #Task (id, ProjectID, name, Status) values(2, 1, 'Набрать армию', 'В процессе')

insert into #Task (id, ProjectID, name, Status) values(3, 2, 'Устроить переворот', 'В процессе')
insert into #Task (id, ProjectID, name, Status) values(4, 2, 'Захватить массмедиа', 'В процессе')
insert into #Task (id, ProjectID, name, Status) values(5, 2, 'Напечатать деньги', 'В процессе')

insert into #Task (id, ProjectID, name, Status) values(6, 3, 'Поссорится со всеми', 'В процессе')
insert into #Task (id, ProjectID, name, Status) values(7, 3, 'Захватить винный завод', 'В процессе')

select * from #Project
where Exists(select * from #Task 
             where #Project.Id=#Task.ProjectId and #Task.Status <> 'Выполнено')
select * from #Project
where not Exists(select * from #Task 
             where #Project.Id=#Task.ProjectId and #Task.Status <> 'Выполнено')
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием