Глупый фопрос про оптимизацию

Allvin
Дата: 04.12.2002 12:36:56
Есть запрос типа такого

select card.*,
DopCostAll = (select sum(isnull(DopCost,0)) from dbo.OCCostDop d where (d.InvNo = card.InvNo) and (d.dateDopCost <= @t)),
from ocinvcard card

Надо в результат выборки добавить поле ttt равное сумме dopCostAll и какого-то значения из таблицы. Как это грамотно сделать, что-бы второй раз не находить DopCostAll
Alexes
Дата: 04.12.2002 12:59:59

select card.*,
CA.DopCostAll,
CA.DopCostAll+card.SomeValue
from ocinvcard card
inner join
(select InvNo,sum(isnull(DopCost,0)) as DopCostAll from dbo.OCCostDop d where d.dateDopCost <= @t group by InvNo) DCA on DCA.InvNo=card.InvNo
MiCe
Дата: 04.12.2002 13:01:16
отфет....;))
select card.*, t.DopCostAll

from ocinvcard card join
(select d.InvNo,sum(isnull(DopCost,0)) DopCostAll
from dbo.OCCostDop d
where d.dateDopCost <= @t
group by d.InvNo) t
on card.InvNo = t.InvNo
Allvin
Дата: 04.12.2002 13:23:50
Спасибо