powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Алгоритм расчёта ведомости движения товара
14 сообщений из 39, страница 2 из 2
Алгоритм расчёта ведомости движения товара
    #39311815
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, заработало при вот таком селекте
Код: sql
1.
2.
3.
4.
5.
SELECT a.prodid, d.produnit, d.prodname, (SELECT TOP 1 z.prodprice 
        FROM   products z 
        WHERE  a.prodid = z.prodid 
               AND z.pricedate <=#9/20/2016# 
        ORDER  BY z.pricedate DESC), c.quantity AS BegRem, SUM(Iif(b.opername = 'prihod' 


и удалении подзапроса из группбай
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311821
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world,

Блин !
Вот уж не туда я смотрел...
Спасибо ! Благодарю !!!
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311923
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Остатки вычисляет, работает как надо, всё супер!

Сейчас маюсь с запросом по расчёту движения товара (он в себя включает вычисление остатков на начало, расчёт движения товара по приходным/расходным операциям) и всё это в количественном и денежном выражении.

Не знаю, стоит ли сами запросы тут публиковать, они места много занимают.
Лучше опубликую базу, в ней лежат таблицы с данными и 2 запроса (до инжекта (проверенный рабочий вариант) и после инжекта подзапросов).
Что я сделал, удалил группировку по prodPrice, заменил везде prodPrice на соответствующий подзапрос:
1) При расчёте начальных остатков из прайса беру цену на соответствующую начало периода
2) при операциях в расчётном периоде, из прайса беру цену - соответствующую дате операции
и стало ругаться в запросе на то, что запрос не содержит дату операции как часть агрегатной функции
- но мне и не надо !!!

Попробовал включить её как агрегатную функцию - вообще дичь какую-то считает...

Вот база http://korosteleff.narod.ru/infobase.mdb

Модератор: Евген987, в дальнейшем выкладывайте примеры на форум, не заставляйте людей бегать по сайтам. Следующее такое вложение будет удалено
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311955
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, подскажите плиз, как выложить файл который даже в архиве занимает ~300 Кб.
Вот вижу что интерфейс предлагает прикреплять файлы размером не более 150Кб (не подходит).
Правила почитал, FAQ почитал - нет нужной инфы...
Может я всё-таки что-то пропустил ? (не хочу модера обижать, а то забанит...)
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311957
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многотомный архив.
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311967
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евген987982183, согласен, так и пытаюсь решить, подтянуть цену по товару, которая была установленной на эту дату
Но не взлетает...
В отработанных решениях формируется прайс лист на весь ассортимент товара,
а не делаются диапазоны дат.
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311968
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,
Мне кажется это излишне из-за части прайса дублировать всю таблицу...
Хотелось бы, и думаю получится общими усилиями заставить работать более гибкий вариант...
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311974
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе место жалко?
Прайс на остаток товара - вполне реальная штука.
+ отчеты и удобнее и быстрее будут делаться.
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311977
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евген987Коллеги, подскажите плиз, как выложить файл который даже в архиве занимает ~300 Кб.

Оставь его на mail.ru, и укажи тут ссылку.
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39311994
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, вопрос пока остаётся открытым...
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1230430&msg=19687158
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39312116
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скурпулёзная сборка запроса с "нуля" дала свои результаты.
Запрос заработал, если кому интересно - вот он
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT a.prodID,d.prodName,
SUM(Iif(b.opername = 'realiz' AND b.operdate <#09/01/2016#, ((SELECT TOP 1 z.prodprice FROM   products z WHERE  a.prodid = z.prodid  AND  z.pricedate <=# 09 / 01 / 2016# ORDER  BY z.pricedate DESC)*b.quantity), 0)) AS Realiz
      
FROM   (((
(select prodID from remains WHERE salID=19
UNION
SELECT DISTINCT a.prodID FROM operations a, users b, crossbase c, products d WHERE  c.useFlag=1 AND c.salID=19 AND b.salID = c.salID AND c.basID=d.basID AND d.prodID=a.prodID) AS a
           LEFT JOIN operations AS b ON a.prodid = b.prodid)
          LEFT JOIN remains AS c ON a.prodid = c.prodid)
         LEFT JOIN products AS d ON a.prodid = d.prodid)
GROUP BY a.prodID,d.prodName
ORDER  BY d.prodname; 


Сейчас буду его наращивать до полного функционала весь следующий день
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39312164
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нихрена, рано поторопился отрапортовать о победе, как только фиксированную дату заменил на b.operDate, так и снова получил сообщение про часть агрегатной функции


Вопрос открыт...
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39312180
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вся загвоздка в b.operDate
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
	var RS = MDB.OpenRecordset(	"SELECT \
						a.prodID, \ 
						d.prodName, \
						d.prodUnit, \
						(SELECT TOP 1 z.prodPrice FROM products z WHERE a.prodID=z.prodID AND z.priceDate<=#"+sqlBeginDate+"# ORDER BY z.priceDate DESC) AS prodPrice,\
						c.Quantity AS RNP, \
						ROUND((SELECT TOP 1 z.prodPrice FROM products z WHERE a.prodID=z.prodID AND z.priceDate<=#"+sqlBeginDate+"# ORDER BY z.priceDate DESC)*c.Quantity,2) AS RNPAmnt, \
						SUM(IIF(b.operName='realiz' AND b.operDate<#"+sqlBeginDate+"#, ((SELECT TOP 1 z.prodPrice FROM products z WHERE a.prodID=z.prodID AND z.priceDate<=#"+sqlBeginDate+"# ORDER BY z.priceDate DESC)*b.Quantity), 0)) AS Realiz, \
						SUM(IIF(b.operName='realiz' AND b.operDate BETWEEN #"+sqlBeginDate+"# AND #"+sqlEndDate+"#, ((SELECT TOP 1 z.prodPrice FROM products z WHERE a.prodID=z.prodID AND z.priceDate<=b.operDate ORDER BY z.priceDate DESC)*b.Quantity), 0)) AS PRealiz \
					FROM ((( \
						(SELECT prodID from remains WHERE salID=19 \
						UNION \
						SELECT DISTINCT a.prodID FROM operations a, users b, crossbase c, products d WHERE c.useFlag=1 AND c.salID=19 AND b.salID=c.salID AND c.basID=d.basID AND d.prodID=a.prodID) AS a \
						LEFT JOIN operations AS b ON a.prodid = b.prodid) \
						LEFT JOIN remains AS c ON a.prodid = c.prodid) \
						LEFT JOIN products AS d ON a.prodid = d.prodid) \
					GROUP BY \
						a.prodID, \
						d.prodName, \
						d.prodUnit, \
						c.Quantity \
					ORDER BY \
						d.prodname;");


Если b.operDate указан константой - то работает, как только приобретает значение поля - так нужна агрегация.

Нужен доктор !
...
Рейтинг: 0 / 0
Алгоритм расчёта ведомости движения товара
    #39312756
Евген987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт.
Задачу разбил на 2 более мелких запроса с промежуточной подготовкой данных в отдельной таблице.
Всё работает как часики.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Алгоритм расчёта ведомости движения товара
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]