Форум: "Базы";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизКак сделать запрос?... Найти похожие ветки
← →
Владий (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c