powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный простой запрос
10 сообщений из 35, страница 2 из 2
Сложный простой запрос
    #39445097
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot __Michelle]Alex37,

Так, отвлечься оказалось полезно.
Новый взгляд возник.
Правильно ли я понимаю, что задача состоит в том,
чтобы получить три итоговые суммы,
не заостряя внимание на причастных к ним Кодах?
Тогда и запросов вспомогательных не надо.
Все сразу получим одним коротким запросом
[src]
SELECT -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DАванс],
-Sum(ДатаРеализации*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DСумма]>,
(SELECT Sum(СуммаДоплаты) FROM тУСН17доплата WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо) AS [Sum-DСуммаДоплаты]
FROM тУСН17
WHERE Дата<Forms!фГлавная!ДатаПо OR ДатаРеализации<Forms!фГлавная!ДатаПо

На 28.02.2017 (в главной форме) выдало:
Sum-DАванс Sum-DСумма Sum-DСуммаДоплаты54 000 85624 15 000
А должно было быть:
54000 0 15000

На 31.03.2017 также дает неправильное значение Sum-DСумма
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445099
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Да, забыл добавить, я поменял везде в условиях запроса <[Forms]![фГлавная]![ДатаПо] на <=[Forms]![фГлавная]![ДатаПо]
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445100
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять та же опечатка вкралась (издержки копирования и писания с планшета).
Код: sql
1.
2.
3.
4.
5.
SELECT -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DАванс],
       -Sum(Сумма*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DСумма], 
       (SELECT Sum(СуммаДоплаты) FROM тУСН17доплата WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо) AS [Sum-DСуммаДоплаты] 
FROM тУСН17 
WHERE Дата<Forms!фГлавная!ДатаПо OR ДатаРеализации<Forms!фГлавная!ДатаПо
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445101
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37, ошибочка была в union запросе-поправил.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445105
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleckoAlex37, ошибочка была в union запросе-поправил.
Проверил работу. Уже было по стенам побежал на радостях, но нашел небольшой баг.
Если выставить дату в форме: 30.04.2017
то запрос пропускает(не видит) такие данные (они последние в списках доплат):
Код=3 - пропущена доплата за 24.04.2017 200 рэ
Код=88 - пропущена доплата за 24.04.2017 1000рэ
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445108
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleОпять та же опечатка вкралась (издержки копирования и писания с планшета).
Код: sql
1.
2.
3.
4.
5.
SELECT -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DАванс],
       -Sum(Сумма*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DСумма], 
       (SELECT Sum(СуммаДоплаты) FROM тУСН17доплата WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо) AS [Sum-DСуммаДоплаты] 
FROM тУСН17 
WHERE Дата<Forms!фГлавная!ДатаПо OR ДатаРеализации<Forms!фГлавная!ДатаПо


Работает не совсем правильно. Значения Sum-DСумма очень большие. Предыдущий вариант точнее считал. Два других результата точные.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445109
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно. Больше не шучу.
Сделаю наконец хорошо.
Код: sql
1.
2.
3.
4.
5.
SELECT -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS [Sum-DАванс],
       -Sum(Сумма*(ДатаРеализации <Forms!фГлавная!ДатаПо)) AS [Sum-DСумма], 
       (SELECT Sum(СуммаДоплаты) FROM тУСН17доплата WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо) AS [Sum-DСуммаДоплаты] 
FROM тУСН17 
WHERE Дата<Forms!фГлавная!ДатаПо OR ДатаРеализации<Forms!фГлавная!ДатаПо
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445113
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Последний вариант полностью прошел мои тесты. Всё работает! Спасибо. Завтра с утра буду тестировать на других, более
внушительных, массивах данных.
Огромное спасибо Вам за помощь! От всего сердца!!!

Спасибо всем, кто принимал участие в решении этого вопроса!
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445357
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,
мою тоже можете потестить - поправил. (в юнион забыл предикат All добавить).
в качестве бонуса - ищем как до, так и после даты в первом поле (не одновременно). (регулируется изменением дат кнопочками)-в качестве даты, берем дату последнего платежа удовлетворяющего условию.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445723
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
Да, работает. Показывает всё правильно. Возьму на вооружение.
Спасибо за помощь! Здоровья и удачи!
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный простой запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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