|
автор: ????????? (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) |
|
| УРА УРА УРА УРА Заработало Большое ВАМ СПАСИБО!!!!!!!!!!!!!!! УРА УРА УРА УРА Заработало Большое ВАМ СПАСИБО!!!!!!!!!!!!!!!
ПИШИТЕ ОЧЕНЬ БЛАГОДАРЕН | |
|
| |
|
|
|
| Так как же добились успеха? | |
|
| |
|
|
|
| Не знаю, как коллега победил эту ситуацию, но у него приход и расход в разных таблицах, между которыми в запросе связь INNER JOIN. Как только для какого-то товара не будет записи с расходом, то и приход он не увидит. Здесь нужен LEFT (или RIGHT) JOIN. | |
|
| |
|
|
|
| хотелось бы также добавить, что если использовать только nz(приход,0), то число будет принимать текстовое значение, если его использовать в дальнейших расчетах, потому рекомендую val(nz(приход,0)) | |
|
| |
|
|
|
| На самом деле, если не указано значение по умолчанию, NZ возвращает Empty, которое, в зависимости от контекста, превращаеется в 0 или "". | |
|
| |
|
|
|
| Кто-нибудь может дать рабочий 100% совет, просто мне тоже очень нужно решить эту проблему
У меня есть таблица приход и расход, потом с помощью 1 запроса определяю сумму товаров с определенным кодом, а с помощью 2 запроса так же расход суммирую, и в 3 запросе нужно сделать, чтобы считался остаток (СумПриход-СумРасход)=Остаток, только если не будет СумРасход (или просто расход), то ничего не будет считатся
Вот запрос:
SELECT СумПриход.[Sum-КолвоПриход], СумРасход.[Sum-КолвоРасход], [Sum-КолвоПриход]-[Sum-КолвоРасход] AS Остаток
FROM СумПриход, СумРасход;
| |
|
| |
|
|
|
| У меня есть таблица приход и расход
так у вас одна таблица с приходим и расходом или 2 -е таблица прихода и таблица расхода?
Кто-нибудь может дать рабочий 100% совет
я могу дать- "приход и расход в одну таблицу" и навсегда забудете о таких проблемах. | |
|
| |
|
|
|
| пока у меня таблица для прихода и таблица для расхода
щас сделал всё в одной, но вот если сделать форму расходную-накладную из шапки: номер накладной (счетчик) и дата (=Date()), а товары в подчиненной, то вот счетчик не хочет начинать считать, а если в ручную заполнять дату, то все ок | |
|
| |
|
|
|
| Счетчик получает значение как только Вы внести первый символ в поле новой строки.
Значение по умолчанию (=date()) не считаются | |
|
| |
|
|
|
| это понятно, значит чтобы подставлялась дата и начинался считаться счетчик невозможно? | |
|
| |
|
|
|
| почему? у Вас что других полей нет? Можно программно добавить и сохранить запись.
Как ACCESS поймет что Вы начали вводитьновую запись, если Вы ничего не вводите? | |
|
| |
|
|
|
| остальные поля только в подчиненной форме, а в шапке накладной нужно только номер и дата | |
|
| |
|
|
|
| LEFT JOIN между таблицами (в конструкторе - стрелочкой к расходу) и NZ в формуле.
Но прислушайтесь к совету OSMOR-а. | |
|
| |
|
|
|
| что-то так не хочет работать, если расход есть, то не хочет вычитаться (остается полное колво прихода), а вычитается только в случаи если приход и расход одинаковы и остаток получается 0
Короче сделал всё в одной таблице и всё работает
осталось только узнать как подружить счетчик и дату =Date() | |
|
| |
|
|
|
| В шапке у вас есть поле для даты. Сделайте его пустым, не задавайте заначение поля по умочанию, а явно присваивайте значение Date(), например в событии загрузки формы..
Тогда счетчик получит значение. | |
|
| |
|
|
|
| и получается при повторном открытии этой же формы дата опять обновиться? | |
|
| |
|
|
|
| Естественно, перед записью надо проверить на Null счетчик или дату.
Изначально вопрос был о новой записи с пустым счетчиком. | |
|
| |
|
|
|
|
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 КодТовара;
|
| |
|
| |