powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите уменьшить код в запросе
14 сообщений из 14, страница 1 из 1
Помогите уменьшить код в запросе
    #39900868
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!
Есть таблица:
iddatenamekolvosenasummastatus101.01.2019Карандаш1005500Приход212.01.2019Карандаш100066000Приход308.01.2019Карандаш500105000Расход422.01.2019Ручка300154500Расход521.01.2019Ручка300113300Приход615.01.2019Ручка900109000Приход711.01.2019Карандаш1009900Расход806.01.2019Ручка500126000Приход929.01.2019Ручка100121200Приход
Хочу:
nameostatoksum_ostatokКарандаш5005000Ручка3001500
Вот как я по своему сделал запрос:)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
prihod.name, 
prihod.[Sum_kolvo]-rashod.[Sum_kolvo] AS ostatok, 
(prihod.[Sum_kolvo]-rashod.[Sum_kolvo])*sena.[Max_sena] AS summa_ostatok
FROM 
(SELECT sklad.name, Sum(sklad.kolvo) AS [Sum_kolvo] FROM sklad WHERE (((sklad.status)="Расход")) GROUP BY sklad.name)  AS rashod 
RIGHT JOIN 
((SELECT sklad.name, Max(sklad.sena) AS [Max_sena] FROM sklad GROUP BY sklad.name)  AS sena 
RIGHT JOIN 
(SELECT sklad.name, Sum(sklad.kolvo) AS [Sum_kolvo] FROM sklad WHERE (((sklad.status)="Приход")) GROUP BY sklad.name)  AS prihod 
ON 
sena.name = prihod.name) ON rashod.name = prihod.name;


Можно ли уменьшить код?
Спасибо!
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900897
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008,
Не обзывайте поля зарезервированными словами(date,name)
Код: vbnet
1.
2.
3.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS Выражение1
FROM товар
GROUP BY товар.myName;
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900901
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
Abisma2008,
Не обзывайте поля зарезервированными словами(date,name)
[/src]

Хорошо!
sdku

Код: vbnet
1.
2.
3.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS Выражение1
FROM товар
GROUP BY товар.myName;


Спасибо за оперативность!
А последняя колонка?) (Где должно показать ostatok*max(sena))
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900903
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
Код: sql
1.
2.
3.
4.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS ostatok,
(Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])))*max(sena)
FROM товар
GROUP BY товар.myName;


Вот так правильно?
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900913
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку: с суммой по остатку возникла проблема:
карандаш-1.1.19 оприходовано 100, а 8.1.19 выдано 500-такого быть не может:на складе их всего 100
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900922
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
вдогонку: с суммой по остатку возникла проблема:
карандаш-1.1.19 оприходовано 100, а 8.1.19 выдано 500-такого быть не может:на складе их всего 100


))). Да Вы правы. Но эти данные я условно брал...)
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900931
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008,
Обычно в первую очередь выдается товар ранее поступивший (его цена меньше max) и вычислять сумму остатка по max цене есть,по моему,не правильно (в остатке могут оказаться товары с разной ценой и приходовать их надо разными)
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900934
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
Abisma2008,
Обычно в первую очередь выдается товар ранее поступивший (его цена меньше max) и вычислять сумму остатка по max цене есть,по моему,не правильно (в остатке могут оказаться товары с разной ценой и приходовать их надо разными)

Согласен.
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900946
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данный момент вылетело из головы как называется все эта система выдачи-я думаю форумяне подскажут,а как все это решается на форуме есть-ищите
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900949
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
в данный момент вылетело из головы как называется все эта система выдачи-я думаю форумяне подскажут,а как все это решается на форуме есть-ищите

Код: sql
1.
2.
3.
4.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS ostatok,
(Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])))*min(sena)
FROM товар
GROUP BY товар.myName;


Вот я добавил цену, проверил, вроде всё верно показывает.
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39900951
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008,
использовать max-оплата всех издержек повышения курса доллара покупателем
использовать min-наказать продавца
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39910110
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abisma2008,

А почему Вам не писать приход с плюсом "+", а расход с минусоым "-",
тогда в запросе не надо никаких IIF() .
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39910296
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLed
...тогда в запросе не надо никаких IIF()... .

Я конечно извиняюсь, что помешал вам деньги прятать

Но мне, как начинающему очень интересненько, типа
А чЁ такого плохого в - IIF ?
...
Рейтинг: 0 / 0
Помогите уменьшить код в запросе
    #39910524
Abisma2008

Код: sql
1.
2.
3.
4.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS ostatok,
(Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])))*min(sena)
FROM товар
GROUP BY товар.myName;


Вот я добавил цену, проверил, вроде всё верно показывает.
В запросе, в формуле для поля можно использовать имя других полей, расположенных левее, поэтому код можно еще сократить:
Код: sql
1.
2.
3.
SELECT товар.myName, Sum(IIf([status]="приход",[kol]))-Sum(IIf([status]="расход",[kol])) AS ostatok, ostatok * Min(sena) AS sum_ostatok
FROM товар
GROUP BY товар.myName;
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите уменьшить код в запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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