![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Умножение в запросе [D5, D6, MSSQL]
bubuka © (2002-08-28 18:53:00)Много Уважаеммый ALL, не подскажешь ли как составить запрос следующего содержания
Есть таблица
ID1, ID2 Int; Pole Float
Нужен запрос вида (типа):
SELECTID1, Умножение(Pole)
GROUPBY ID1
Или это невозможно принципиально???
Пример:
ID1|ID2|Pole
------------
1 | 1 | 2.5
1 | 2 | 1.5
2 | 1 | 3.5
3 | 1 | 1.7
3 | 2 | 1.8
3 | 3 | 1.3
-------------
Результат:
------------
ID | Результат
------------
1 | 3.75
2 | 3.5
3 | 3.978
---------------------------------
Смысл получить следующее:
ID = 1, Результат = 2,5*1,5 = 3,75
ID = 2, Результат = 3,5
ID = 3, Результат = 1,7*1,8*1,3 = 3,978
ЮЮ (2002-08-29 02:31:00) [1]если кол-во сомножителей ограниченное и известное:
select p1.ID1,p1.pole*isnull(p2.Pole,1)*isnull(p3.Pole,1)*... as Res from
(Select * from Table where ID2=1) p1
left join
Table p2 on p1.ID1=p2.ID1 and p2.ID2=2
left join
Table p3 on p1.ID1=p2.ID1 and p3.ID2=3
...
sniknik (2002-08-29 00:14:00) [2]определить свою функцию???? 2000 MSSQL позволяет.
а вот одним запросом видимо никак.
wicked (2002-08-28 19:25:00) [3]имхо без курсора и временной таблицы здесь не обойтись...