Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Вычислимое поле в запросе   Найти похожие ветки 

 
Alx2 ©   (2005-01-24 14:58) [0]

Выбираю записи из базы с помощью select
Хочу чтобы в выборку попало фиктивное поле (вычисляемое) говорящее о том, что идентификатор данной записи встречается в другом select.

Более подробно:
В результирующем запросе должно стоять поле "D" = 1, если идентификатор ID текущей записи встречается в

SELECT     Id
FROM         Goals t1
WHERE     EXISTS
                         (SELECT     t2.id
                           FROM          goals AS t2
                           WHERE      t2.dependences = t1.id)


Как делаются такие поля?


 
Соловьев ©   (2005-01-24 15:05) [1]

select
case
 when g2.id is null then 1
 else 0
end as D
from goals g1
left join goals g2 on g1.id = g2.dependences


 
Alx2 ©   (2005-01-24 15:13) [2]

>Соловьев ©   (24.01.05 15:05) [1]
Спасибо, работает!
Но есть проблема:
Множатся строчки, для которых g1.id = g2.dependences имеет место быть более одного раза.

То есть количество дублей равняется количеству записей в подзапросе

SELECT t2.id
      FROM          goals AS t2
           WHERE      t2.dependences = t1.id


 
Alx2 ©   (2005-01-24 15:15) [3]

Вдогонку: distinct работать отказывается, так как присутствуют MEMO-поля


 
Stanislav ©   (2005-01-24 15:22) [4]

select
MAX(case
when g2.id is null then 1
else 0
end) as D
from goals g1
left join goals g2 on g1.id = g2.dependences
group by g1.id


 
Johnmen ©   (2005-01-24 15:30) [5]

SELECT Id, WHEN (xxx)>0 THEN 1 ELSE 0
FROM Goals t1
где
xxx есть
SLECT COUNT(*) FROM Goals t2 WHERE t2.dependences = t1.id


 
Alx2 ©   (2005-01-24 15:42) [6]

>Johnmen ©   (24.01.05 15:30) [5]

Спасибо! Все получилось отлично.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.066 c
3-1106520704
Killus
2005-01-24 01:51
2005.02.20
Как создать ODBC DSN через код (в программе)?


1-1107746856
Bes
2005-02-07 06:27
2005.02.20
Поток в DLL...


1-1107707185
Mr-JAck
2005-02-06 19:26
2005.02.20
перевод градусов от одного вида к другому.


3-1106207916
Scorpio
2005-01-20 10:58
2005.02.20
Отсеивание даты в SQL


1-1107345014
_student
2005-02-02 14:50
2005.02.20
Уважаемы мастера. Подскажите как получить пусть к папке...