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

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

Знатокам процедур (хотя можно и запрос)


ASVShade ©   (2005-10-20 21:21:00) 

Имеется таблица T её столбцы:
T.s1 - свойство1
T.s2 - свойство2
T.a  - некое число

Нужен запрсос(хранимая процедура) возвращающий
select s1, s2, a, aa, t

Где s1,s2,a исходные данные
aa - сумма всех a, где одинаковые s1
t - может быть (1,2 или 3)
1 - если s1 ранее не встречалось
2 - если s1 встречалось, а s2 не встречалось
3 - встречались и s1 и s2

Обязательное условие - менять порядок записей нельзя. Перебирать записи как они будут даны сервером.
(Пояснение: данные выданы процедурой, путём рекурсивной пробежки по дереву. Нужно выделить уникальные ветки (листики) и сосчитать сумму одинаковых веток(листиков))
Пример работы правильного запроса:

исходные данные
s1 s2 a
100 0 2
50 100 2
51 50 2
52 50 2
200 0 3
50 200 3
51 50 3
52 50 3
50 0 2
51 50 2
52 50 2
51 0 4
600 0 1

ответ
s1 s2 a aa t
100 0 2 2 1
50 100 2 7 1
51 50 2 11 1
52 50 2 7 1
200 0 3 3 1
50 200 3 7 2
51 50 3 11 3
52 50 3 7 3
50 0 2 7 2
51 50 2 11 3
52 50 2 7 3
51 0 4 11 2
600 0 1 1 1


Diesel_x34   (2005-10-28 09:48:00) [1]

Слушай, поле "аа" вытащить не проблема...

select s1, s2, a,
(select sum(a) from ta where s1 = ownta.s1 group by s1) as aa
from ta ownta


А вот "t"... Может легче это в Дельфи сделать?


ASVShade_   (2005-10-21 21:03:00) [2]

Ну пусть будут в детском саду.
Сервер IB6.5
Язак программирования Дельфя7

Уже неделю мучаюсь :(


evvcom   (2005-10-21 09:20:00) [3]

Это такие задачи в детском саду задают? Причем даже не говоря на чем реализовать?


Наверх

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