Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.25;
Скачать: CL | DM;

Вниз

Как сделать запрос?...   Найти похожие ветки 

 
Владий ©   (2003-07-31 09:52) [0]

Есть база в Access"е. 1-я таблица - список счетов. 2-я - поступление на счет (дата/сумма/№), 3-я - списание со счетов.
Нужно правильно посчитать - в какой период (сколько дней) какая сумма висела на каждом счете. Можно это сделать запросом? А то вручную делать - неспортивно...

Хорошей Удачи!
Владий // ICQ: 47659886


 
alex_bredin ©   (2003-07-31 10:10) [1]

select spis.data_spisania-postup.data_postuplenia?


 
alex_bredin ©   (2003-07-31 10:17) [2]

select scheta.nscheta,
spis.data_spisania-postup.data_postuplenia,
( scheta left join postup on scheta.nscheta=postup.nscheta left join spis on scheta.nscheta=spis.nscheta ) select scheta.nscheta,
spis.data_spisania-postup.data_postuplenia,
postup.summa
from (scheta left join postup on scheta.nscheta=postup.nscheta left join spis on scheta.nscheta=spis.nscheta )




 
Владий ©   (2003-07-31 11:40) [3]

Почти получилось, только немного не то выходит, что надо...
пока так:

SELECT Contracts.NunDog, Transfer.TDate-Got.GDate, Got.GSum-Transfer.TSum
FROM (Contracts LEFT JOIN Got ON Contracts.NunDog = Got.Contr) LEFT JOIN Transfer ON Contracts.NunDog = Transfer.Contract;

Только вот вместо "Got.GSum-Transfer.TSum" нужно поставить что-то,
чтоб суммировались все поступления\перечисления на дату...

Хорошей Удачи!
Владий // ICQ: 47659886


 
stud ©   (2003-07-31 11:43) [4]

sum(Got.GSum-Transfer.TSum)...
group by Contracts.NunDog, Transfer.TDate-Got.GDate...


 
Соловьев ©   (2003-07-31 11:44) [5]

SELECT Contracts.NunDog, Transfer.TDate-Got.GDate, SUM(Got.GSum-Transfer.TSum)
FROM (Contracts LEFT JOIN Got ON Contracts.NunDog = Got.Contr) LEFT JOIN Transfer ON Contracts.NunDog = Transfer.Contract
GROUP BY Transfer.TDate-Got.GDate, Contracts.NunDog


 
Соловьев ©   (2003-07-31 11:54) [6]


> stud © (31.07.03 11:43)


> Только вот вместо "Got.GSum-Transfer.TSum" нужно поставить
> что-то,
> чтоб суммировались все поступления\перечисления на дату...

поэтому нада групировку сначала по дате сделать.


 
Владий ©   (2003-07-31 12:53) [7]

Постоянно получались отрицательные значения (хотя их быть не может). попробовал так посмотреть:

SELECT Contracts.NunDog, Got.GDate, Sum(Got.GSum), Transfer.TDate, Sum(Transfer.TSum)
FROM (Contracts LEFT JOIN Got ON Contracts.NunDog = Got.Contr) LEFT JOIN Transfer ON Contracts.NunDog = Transfer.Contract
GROUP BY Contracts.NunDog, Got.GDate, Transfer.TDate
ORDER BY Contracts.NunDog, Got.GDate, Transfer.TDate;

И дошло до меня, что т.к. Даты беруться не каждый день, то и расчеты неверны... Как создать условие, чтобы у меня не считалась разница когда не надо? А то получается, что у меня отчисления 15, до которого было несколько поступлений, а разница считается между перыми записями...

Хорошей Удачи!
Владий // ICQ: 47659886




 
ЮЮ ©   (2003-08-01 03:11) [8]

>в какой период (сколько дней) какая сумма висела на каждом счете.

Ну и формулировочка! :-)
На такой вопрос существует только один правильный ответ:
"Сумма на счете - это запись во 2-й и она висит всегда, пока запись существует, начиная с даты, указанной в записи"



 
ЮЮ ©   (2003-08-01 03:21) [9]

Р.S. Сформулируй, примерно так:
"Для каждого(или заданного счета) на заданную дату необходимо подчитать сумму по всем приходом до этой даты(включительно) и вычесть сумму по всем расходам до этой даты(включительно)"

При такой формулировке решение становится просто очевидным. Просто не хочется его выводить, не будучи уверенным, что тебе надо именно это, а не "в какой период (сколько дней) какая сумма висела на каждом счете"



Страницы: 1 вся ветка

Текущий архив: 2003.08.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
3-81552
grand_kvirtu
2003-07-30 16:21
2003.08.25
Как по клику в DBGrid получить индекс выделеной строки


3-81546
Dripus
2003-07-30 16:25
2003.08.25
TQuery и Win98.


14-81954
Feshik
2003-08-06 17:32
2003.08.25
Опять про чужое окно


1-81700
dez
2003-08-11 10:51
2003.08.25
Вставка Bitmap в Word


1-81782
iNew
2003-08-14 05:10
2003.08.25
Автоматическое копирование файлов.