Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: считаем в базе приход расход и остаток
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

считаем в базе приход расход и остаток
приход 5 , расход 2 , в остатке 3
но если небыло расхода, (поле не определено) в остатке должно отображаться 5
как это сделать в запросе

  Ответить  
 
 автор: Major   (30.11.-1 в 00:00)
 
 

А у вас что отображается?

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Re: А у вас что отображается? ели расход равен 0 то отображается количество прихода
а если расхода вообще небыло то нечего не отображается

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

остаток=nz(приход,0)-nz(расход,0)

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Re[2]: А у вас что отображается? Если я в расход вставляю любое число то все работает
в отчете высвечивается правильный остаток,
А если не вставлять число в расход как такового расхода не было но не ноль тогда как?
Получается из прихода вычитаю ничего и должен получится приход

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

Дык, Вы формулу-то проверьте... вставьте вычисляемое поле в запрос

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Re: Дык, Вы формулу-то проверьте... ругается на нули и запятые
Приход, расход это имена полей

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Я его там и правлю в запросе Я его там и правлю в запросе

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Так ни чего и не выходит Ругатся она перестала
Но в отчете пусто не отображается тот приход из котого вычли ништо даже не ноль

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Вот такой SELECT [03_Стр_РаспрТвр таб].Кл_Кбнт, [Спр_Твр таб].Твр, [02_СтрТреб таб].ЦнТвр, [Спр_Твр таб].ИнвНомер, [Спр_Твр таб].НоменклНомер, [03_Стр_РаспрТвр таб].ДтРаспрТвр, [03_Стр_РаспрТвр таб].КолВоРаспрТвр, [081_СтрСписТвр таб].КолВоСписТвр, nz([КолВоРаспрТвр],0)-nz([КолВоСписТвр],0) AS Остаток
FROM [Спр_Твр таб] INNER JOIN (([02_СтрТреб таб] INNER JOIN [03_Стр_РаспрТвр таб] ON [02_СтрТреб таб].Кл_СтрТреб = [03_Стр_РаспрТвр таб].Кл_СтрТреб) INNER JOIN [081_СтрСписТвр таб] ON [03_Стр_РаспрТвр таб].Кл_РаспрТвр = [081_СтрСписТвр таб].Кл_РаспрТвр) ON [Спр_Твр таб].Кл_Твр = [02_СтрТреб таб].Кл_Твр;

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

и в поле "остаток" - ПУСТО??? Вот такой запрос работает замечательно. И в поле ОСТАТОК отображается результат даже для тех строк, в которых поле РАСХ=NULL:

***********
SELECT табл.*, nz([прих],0)-nz([расх],0) AS Остаток
FROM табл;
*********

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

поставьте вместо запятых точки-с-запятыми

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Ругатся она перестала Ругатся она перестала
Но в отчете пусто.
не отображается тот приход из которого вычли пустой расход

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

покажите текст запроса

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Вот такой запрос SELECT [03_Стр_РаспрТвр таб].Кл_Кбнт, [Спр_Твр таб].Твр, [02_СтрТреб таб].ЦнТвр, [Спр_Твр таб].ИнвНомер, [Спр_Твр таб].НоменклНомер, [03_Стр_РаспрТвр таб].ДтРаспрТвр, [03_Стр_РаспрТвр таб].КолВоРаспрТвр, [081_СтрСписТвр таб].КолВоСписТвр, nz([КолВоРаспрТвр],0)-nz([КолВоСписТвр],0) AS Остаток
FROM [Спр_Твр таб] INNER JOIN (([02_СтрТреб таб] INNER JOIN [03_Стр_РаспрТвр таб] ON [02_СтрТреб таб].Кл_СтрТреб = [03_Стр_РаспрТвр таб].Кл_СтрТреб) INNER JOIN [081_СтрСписТвр таб] ON [03_Стр_РаспрТвр таб].Кл_РаспрТвр = [081_СтрСписТвр таб].Кл_РаспрТвр) ON [Спр_Твр таб].Кл_Твр = [02_СтрТреб таб].Кл_Твр;

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

не всегда он пустой ОСТАТОК я в поле [КолВоСписТвр] не забиваю ни какое число
так как списания фактически ни какого не было
Поле [КолВоРаспрТвр]это приход там стоит число
И получается что из [КолВоРаспрТвр] вычитать нечего чтобы получился остаток
Как только ставлю ноль в поле [КолВоСписТвр] так все работает
отстаток равен значению [КолВоРаспрТвр]

  Ответить  
 
 автор: SRG   (30.11.-1 в 00:00)
 
 

не верю [img]C:TEMPClipBoard.jpg[/img]

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

Тогда извините что оторвал от дела Буду сам долбатся я
Чтоб остаток был не зря
Но запрос ведь правильный
Видать я ошпаренный

Благодарность и стишок
Пиши мне на адресок AU_Saratov@mail.ru
Отвечаю только так
Стихоплет какой пустяк

  Ответить  
 
 автор: ?????????   (30.11.-1 в 00:00)
 
 

УРА УРА УРА УРА Заработало Большое ВАМ СПАСИБО!!!!!!!!!!!!!!! УРА УРА УРА УРА Заработало Большое ВАМ СПАСИБО!!!!!!!!!!!!!!!

ПИШИТЕ ОЧЕНЬ БЛАГОДАРЕН

  Ответить  
 
 автор: m0r0z   (28.05.2008 в 15:43)   личное сообщение
 
 

Так как же добились успеха?

  Ответить  
 
 автор: Анатолий (Киев)   (28.05.2008 в 17:32)   личное сообщение
 
 

Не знаю, как коллега победил эту ситуацию, но у него приход и расход в разных таблицах, между которыми в запросе связь INNER JOIN. Как только для какого-то товара не будет записи с расходом, то и приход он не увидит. Здесь нужен LEFT (или RIGHT) JOIN.

  Ответить  
 
 автор: lurix   (28.05.2008 в 17:48)   личное сообщение
 
 

хотелось бы также добавить, что если использовать только nz(приход,0), то число будет принимать текстовое значение, если его использовать в дальнейших расчетах, потому рекомендую val(nz(приход,0))

  Ответить  
 
 автор: Анатолий (Киев)   (28.05.2008 в 19:25)   личное сообщение
 
 

На самом деле, если не указано значение по умолчанию, NZ возвращает Empty, которое, в зависимости от контекста, превращаеется в 0 или "".

  Ответить  
 
 автор: m0r0z   (28.05.2008 в 20:38)   личное сообщение
 
 

Кто-нибудь может дать рабочий 100% совет, просто мне тоже очень нужно решить эту проблему
У меня есть таблица приход и расход, потом с помощью 1 запроса определяю сумму товаров с определенным кодом, а с помощью 2 запроса так же расход суммирую, и в 3 запросе нужно сделать, чтобы считался остаток (СумПриход-СумРасход)=Остаток, только если не будет СумРасход (или просто расход), то ничего не будет считатся

Вот запрос:
SELECT СумПриход.[Sum-КолвоПриход], СумРасход.[Sum-КолвоРасход], [Sum-КолвоПриход]-[Sum-КолвоРасход] AS Остаток
FROM СумПриход, СумРасход;

  Ответить  
 
 автор: osmor   (29.05.2008 в 08:59)   личное сообщение
 
 

У меня есть таблица приход и расход
так у вас одна таблица с приходим и расходом или 2 -е таблица прихода и таблица расхода?

Кто-нибудь может дать рабочий 100% совет
я могу дать- "приход и расход в одну таблицу" и навсегда забудете о таких проблемах.

  Ответить  
 
 автор: m0r0z   (29.05.2008 в 19:38)   личное сообщение
 
 

пока у меня таблица для прихода и таблица для расхода

щас сделал всё в одной, но вот если сделать форму расходную-накладную из шапки: номер накладной (счетчик) и дата (=Date()), а товары в подчиненной, то вот счетчик не хочет начинать считать, а если в ручную заполнять дату, то все ок

  Ответить  
 
 автор: osmor   (30.05.2008 в 08:45)   личное сообщение
 
 

Счетчик получает значение как только Вы внести первый символ в поле новой строки.
Значение по умолчанию (=date()) не считаются

  Ответить  
 
 автор: m0r0z   (30.05.2008 в 12:09)   личное сообщение
 
 

это понятно, значит чтобы подставлялась дата и начинался считаться счетчик невозможно?

  Ответить  
 
 автор: osmor   (30.05.2008 в 12:37)   личное сообщение
 
 

почему? у Вас что других полей нет? Можно программно добавить и сохранить запись.
Как ACCESS поймет что Вы начали вводитьновую запись, если Вы ничего не вводите?

  Ответить  
 
 автор: m0r0z   (30.05.2008 в 20:05)   личное сообщение
 
 

остальные поля только в подчиненной форме, а в шапке накладной нужно только номер и дата

  Ответить  
 
 автор: Анатолий (Киев)   (29.05.2008 в 09:59)   личное сообщение
 
 

LEFT JOIN между таблицами (в конструкторе - стрелочкой к расходу) и NZ в формуле.
Но прислушайтесь к совету OSMOR-а.

  Ответить  
 
 автор: m0r0z   (29.05.2008 в 19:41)   личное сообщение
 
 

что-то так не хочет работать, если расход есть, то не хочет вычитаться (остается полное колво прихода), а вычитается только в случаи если приход и расход одинаковы и остаток получается 0

Короче сделал всё в одной таблице и всё работает
осталось только узнать как подружить счетчик и дату =Date()

  Ответить  
 
 автор: Ю.Ш.   (02.06.2008 в 09:50)   личное сообщение
 
 

В шапке у вас есть поле для даты. Сделайте его пустым, не задавайте заначение поля по умочанию, а явно присваивайте значение Date(), например в событии загрузки формы..
Тогда счетчик получит значение.

  Ответить  
 
 автор: m0r0z   (02.06.2008 в 13:38)   личное сообщение
 
 

и получается при повторном открытии этой же формы дата опять обновиться?

  Ответить  
 
 автор: Ю.Ш.   (02.06.2008 в 14:07)   личное сообщение
 
 

Естественно, перед записью надо проверить на Null счетчик или дату.
Изначально вопрос был о новой записи с пустым счетчиком.

  Ответить  
 
 автор: Кабан   (02.06.2008 в 10:34)   личное сообщение
 
 


SELECT КодТовара, sum(КолвоПриход) AS Приход, sum(КолвоРасход) AS Расход, [Приход]-[Расход] AS Остаток
FROM [SELECT КодТовара,СумПриход.[КолвоПриход], 0 as [КолвоРасход], 0 AS Остаток
FROM СумПриход
union all
SELECT КодТовара,0 as [КолвоПриход], -1*СумРасход.[КолвоРасход], 0 AS Остаток
FROM СумРасход
]. AS x
GROUP BY КодТовара;

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList