Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Умножение в запросе [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]

имхо без курсора и временной таблицы здесь не обойтись...


Наверх

Титульная страница Поиск, карта сайта Написать письмо