Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2012, 13:39   #1
d_adilet
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 49
Печаль Вычисления по одному столбцу

Добрый день,
Есть таблица (Firebird 2.1):
Имя Дата Операция
Иван 25.01.12 Получил
Иван 27.01.12 Погасил
Вася 24.01.12 Получил
Вася 26.01.12 Получил
Вася 29.01.12 Погасил
Ваня 20.01.12 Получил
Ваня 21.01.12 ПОгасил

Хотел запросиком вытащить сколько дней сотрудник пользовался деньгами.
т.е.
Имя - Получил - Погасил - Кол_воДней
Иван - 25.01.12 - 27.01.12 - 2
Вася - 24.01.12 - 29.01.12 - 5
Ваня - 20.01.12 - 21.01.12 - 1

Все перепробовал но нифига :-(
Остановился не следующем запросе но он работает только когда сотрудник получал деньги единожды...а если два и более уже не работает
Select Дата1, Дата2, Дата2-Дата
From (SELECT distinct Дата1 FROM Табле WHERE Операция=Получил ),(SELECT distinct Дата2 FROM Табле WHERE Операция=Погасил )

Подскажите пож-та куда копать?

З.Ы. Новичок :-)
d_adilet вне форума Ответить с цитированием
Старый 23.03.2012, 14:14   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Копать нужно так:
1. Каждый клиент должен иметь свой идентификатор (не Вася-Петя, а свой уникальный номер)
2. То же самое касается операций (не получил-погасил а, например, 0/1).
В одном месте вижу написано ПОгасил.
Согласись, что в твоем запросе Погасил и ПОгасил - это совершенно разные операции.
3. Исправляй БД и далее все станет понятно. Запрос простой
select sum(data2-data1) from table where id = текущему.
4. да.. чуть не забыл - имена полей пиши на английском, в дальнейшем меньше проблем будет
_SERGEYX_ вне форума Ответить с цитированием
Старый 23.03.2012, 14:22   #3
d_adilet
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 49
По умолчанию

_SERGEYX_
Спасибо за направление. Буду пробовать.
А по поводу таблицы и полей это был просто пример.
d_adilet вне форума Ответить с цитированием
Старый 28.03.2012, 04:15   #4
Bit_Man
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 29
По умолчанию

в firebird 2.1 должна быть такая функция datediff, поиграй с ней.
firebirdsql

Последний раз редактировалось Bit_Man; 28.03.2012 в 04:16. Причина: добавление
Bit_Man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить сортировку таблицы по одному столбцу, выбирая новый столбец С++ Johnny_Grunge Помощь студентам 0 27.01.2012 17:49
Суммирование по столбцу Teodoro Microsoft Office Excel 1 29.10.2011 16:31
поиск по столбцу waw БД в Delphi 5 10.06.2010 07:43
Поиск значения по столбцу panuta Microsoft Office Excel 5 15.05.2010 08:03
Сортировка массива по столбцу Iv@n Общие вопросы .NET 2 02.03.2010 13:55