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

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

Вопрос по SQL [MSSQL, dBase, FoxPro, Paradox]


sterran ©   (2002-10-24 10:16:00) 

Есть БД с полями Табельный номер и начисленная зарплата

TNOM ITNCH
========================
00001 32526.00
00002 24521.26
00003 18562.20
.
.
.
00001 5083.69
00002 1725.63
00003 200.00



Для того чтобы узнать общую сумму начисление каждого табельного номера достаточно выполнить
стандартную агрегатную функция SUM и сгруппировать по табельным номерам.

А существует ли какой не будь способ для выполнения операции обратной операции SUM, т.е. если нужно вычесть одну величину начисления из другой и сгруппировать их опять же по табельному номеру.

Буду очень признателен если кто-нибудь подаст толковый совет


sterran   (2002-10-24 11:30:00) [1]

спасибо, догнал


Johnmen   (2002-10-24 11:11:00) [2]

Ты что-то не догоняешь...Еще раз :

>...первое встречающее значения ...

Первое встречающееся где ? И как это определено ?

(24.10.02 11:02)
Если так ставится вопрос, то совершенно определенно можно сказать, что база спроектирована коряво...

Если под начислениями подразумеваются и удержания, то они д.б. хотя бы отрицательными !


sterran   (2002-10-24 11:02:00) [3]

>Johnmen © (24.10.02 10:45)
причем здесь логическая структура,
Я же имею ввиду не вычитание значения одного поля с другого, это я и сам умею

Согласен, может вопрос поставлен не очень корректно, но мне нужно узнать существует ли какая-нибудь агрегатная функция обратная SUM и все.
Еще раз привожу пример как должен идти процесс вычисления на примере т.номера 00001:
берется его первое встречающее значения 32526,00 из него вычитают второе встречающееся значение 5083,69
в итоге должна получиться и так для всех т.номеров В итоге должна получиться таблица
TNOM ITNCH
=======================
00001 27442.31
00002 22795.63
00003 18362.20


Johnmen   (2002-10-24 10:45:00) [4]

>sterran © (24.10.02 10:36)
>...из встречающихся ниже

В каком смысле ? Ниже уровня океана ? :)))

Добрый совет - пересмотри логическую структуру таблиц БД.


sterran   (2002-10-24 10:36:00) [5]

Нужно вычитать значения поля ITNCH из встречающихся ниже, использую таблицы DBASE
т.е. это будет выглядеть так для таб.ном
32526,00-5083,69и т.д. ровно столько раз сколько раз попдаются одинаковые таб. номера


ЮЮ   (2002-10-24 10:24:00) [6]

Какую и из какой? Их только две для одного таб.#?
И всё-таки MSSQL или (dBase, FoxPro, Paradox)? У них возможности SQL разные.


Johnmen   (2002-10-24 10:22:00) [7]

Способы существуют всегда...
Чтобы получить толковый ответ, необходим толковый вопрос. :)


Наверх

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