powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный простой запрос
25 сообщений из 35, страница 1 из 2
Сложный простой запрос
    #39444918
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Опять я за советом к знатокам.
В бухгалтерской базе есть основная таблица "тУСН17" и подчиненная "тУСН17доплата".
"тУСН17" связана с "тУСН17доплата" как один ко многим

"тУСН17" содержит столбцы (с которыми надо работать, остальные пропущены):
Код

Дата

Аванс

ДатаРеализации

Сумма
Дата - это дата аванса, ДатаРеализации - дата, когда была проставлена Сумма

"тУСН17доплата" содержит столбцы

Код

КодУСН - связь с Код "тУСН17"

ДатаДоплаты

СуммаДоплаты

Задача такая, надо подсчитать суммы на указанный период по столбцам Аванс, Сумма, СуммаДоплаты, но с учетом проставленных дат для каждого платежа. Т.е. Аванс может быть оплачен 1 января 2017, Сумма (Дата реализации) - 12 февраля, а доплаты в течении длительного времени, 1-я 15 февраля, 2-я 24 апреля....
Если период указан на конец февраля 2017 (указывается в главной форме), то считаться должны лишь числа, даты которых меньше или равны 28 февраля 2017
Трудно объяснить, покажу на примере, вот первая строка в таблице:

Аванс: 20000 от 1.01.2017
Сумма: 50000 от 12.02.2017
Доплата1: 2000 от 15.02.2017
Доплата2: 3000 от 24.04.2017

вторая строка:
Аванс: 48000 от 27.02.2017
Сумма: 90000 от 11.04.2017
Доплата1: 12000 от 15.04.2017
...
В итоге должно получить следующее:
Аванс: 20000 + 48000 = 68000
Сумма: 50000
Доплата: 2000
остальное игнорируется

Я долго сидел, пробовал разными способами решить эту задачу. Пришлось использовать два запроса - первый собирает данные, отфильтровывая нужное, а второй уже считает:

Первый запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT DISTINCTROW тУСН17.Код, тУСН17.№договора, тУСН17.Дата, 
IIf([Дата]<Forms!фГлавная!ДатаПо,[Аванс],0) AS DАванс, 
тУСН17.ДатаРеализации, IIf([ДатаРеализации]<Forms!фГлавная!ДатаПо,[Сумма],0) AS DСумма, 
IIf(IsNull([ДатаДоплаты]),[Дата],[ДатаДоплаты]) AS DДоплаты, 
IIf([DДоплаты]<=(Forms!фГлавная!ДатаПо),Sum(IIf(IsNull([СуммаДоплаты]),0,[СуммаДоплаты])),0) AS SumДоплаты
FROM тУСН17 LEFT JOIN тУСН17доплата ON тУСН17.Код = тУСН17доплата.КодУСН
GROUP BY тУСН17.Код, тУСН17.№договора, тУСН17.Дата, 
IIf([Дата]<Forms!фГлавная!ДатаПо,[Аванс],0), тУСН17.ДатаРеализации, 
IIf([ДатаРеализации]<Forms!фГлавная!ДатаПо,[Сумма],0), 
IIf(IsNull([ДатаДоплаты]),[Дата],[ДатаДоплаты]), тУСН17.[Оплата100%]
HAVING (((тУСН17.Дата)<=[Forms]![фГлавная]![ДатаПо]) AND ((тУСН17.[Оплата100%])=False)) OR 
(((тУСН17.ДатаРеализации)<=[Forms]![фГлавная]![ДатаПо]) AND ((тУСН17.[Оплата100%])=False)) OR 
(((IIf(IsNull([ДатаДоплаты]),[Дата],[ДатаДоплаты]))<=[Forms]![фГлавная]![ДатаПо]) AND ((тУСН17.[Оплата100%])=False))
ORDER BY тУСН17.Код;



Второй запрос:
Код: sql
1.
2.
3.
4.
SELECT DISTINCTROW Sum(зУСН17остатокДни.DАванс) AS [Sum-DАванс], 
Sum(зУСН17остатокДни.DСумма) AS [Sum-DСумма], 
Sum(зУСН17остатокДни.SumДоплаты) AS [Sum-SumДоплаты]
FROM зУСН17остатокДни;



Но в первом запросе есть засада, он некоторые строки дублирует (подчеркнуто красным на картинке), а именно те, где есть несколько доплат (подчеркнуто зелёным) . Естественно, второй запрос дает неправильный результат. Также пришлось принять меня к записям, где доплат нет вообще (нет записей) - в таких случаях подставлял дату от аванса, а сумма = 0.



Подскажите, пожалуйста, что тут можно сделать? Как удалить повторяющиеся суммы?
На всякий случай выложил урезанный вариант базы.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39444986
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может так?
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445006
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
Нет, не так. У тебя идет проверка по наличию ненулевых значений с строках таблиц.
А работать надо с любыми числами. Например, в строке таблицы "тУСН17" может быть только одно число большее нуля, Аванс. Остальные числа могут быть равны нулю.

Надо работать с числами даты которых меньше или равны дате в [Forms]![фГлавная]![ДатаПо].

Сейчас пробовал группировать данные по месяцам и сравнивал с <=Format$([Forms]![фГлавная]![ДатаПо];'mmmm yyyy')
Получилось слишком длинное выражение, Access 2003 отказался работать с ним.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445008
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
и надо результат получить в одной строке (в идеале)

SumАвансов SumСумм SumДоплат - далее будет считаться Остаток (что это такое не знаю, бухгалтерией не владею), будет высчитываться по формуле: Остаток=SumАвансов + SumДоплат - SumСумм. Но это уже просто.
Вопрос, как эту таблицу в одну строку свести? :)
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445011
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

примерно так

запрос z11 --слияние на 1 апреля
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT Код,1 as ns, [№договора], Дата,
 Заказчик, Реализация, ДатаРеализации,
 Сумма, Аванс, [Оплата100%], [№счета],
 ccur(0) AS doplata
FROM тУСН17

UNION ALL
 SELECT [КодУСН],2,"",[ДатаДоплаты],"","","","","","","",  [СуммаДоплаты]
FROM тУСН17доплата
WHERE ((([ДатаДоплаты])<#4/1/2017#))
ORDER BY 1, 2;


Кодns№договораДатаЗаказчикРеализацияДата РеализацииСуммаАвансОплата 100%№счетаdoplata111204-б11.11.2013ООО "Порта плюс222"-115.03.201725000500000,00р.1219.01.20175 000,00р.1216.01.201710 000,00р.21109-н18.03.2017Филюшкина С.Е.022.03.201703000000,00р.31145-б24.03.2017ИП Белов А.А.-128.03.201720001000-11100,00р.3230.03.2017100,00р.3229.03.2017200,00р.3228.03.2017500,00р.341113-б17.03.2017ИП Белов А.А.-122.03.20173455015000-10,00р.34224.03.201719 550,00р.361146-б03.03.2017ООО "Окна плюс"-120.04.2017200001600001360,00р.371147-б03.04.2017ИП Озеров Н.А.-120.04.2017300002000001350,00р.87120002.02.2017ИП "Пупкин"-121.03.20171000004900002000,00р.881222220.04.2017ОООООО-123.04.201710000500000,00р.

обічніе итого

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT  z11.Код, First(z11.ns) AS [First-ns],
 First(z11.[№договора]) AS [First-№договора],
 First(z11.Дата) AS [First-Дата],
 First(z11.Заказчик) AS [First-Заказчик],
 First(z11.Реализация) AS [First-Реализация],
 First(z11.ДатаРеализации) AS [First-ДатаРеализации],
 First(z11.Сумма) AS [First-Сумма],
 First(z11.Аванс) AS [First-Аванс],
 First(z11.[Оплата100%]) AS [First-Оплата100%],
 First(z11.[№счета]) AS [First-№счета],
 Sum(z11.doplata) AS [Sum - doplata]
FROM z11
GROUP BY z11.Код;


КодFirst-nsFirst- №договораFirst-ДатаFirst-ЗаказчикFirst- РеализацияFirst-Дата РеализацииFirst-СуммаFirst-АвансFirst-Оплата 100%First-№счетаSum - doplata111204-б11.11.2013ООО "Порта плюс222"-115.03.2017250005000015 000,00р.21109-н18.03.2017Филюшкина С.Е.022.03.201703000000,00р.31145-б24.03.2017ИП Белов А.А.-128.03.201720001000-1110800,00р.341113-б17.03.2017ИП Белов А.А.-122.03.20173455015000-119 550,00р.361146-б03.03.2017ООО "Окна плюс"-120.04.2017200001600001360,00р.371147-б03.04.2017ИП Озеров Н.А.-120.04.2017300002000001350,00р.87120002.02.2017ИП "Пупкин"-121.03.20171000004900002000,00р.881222220.04.2017ОООООО-123.04.201710000500000,00р.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445014
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Пример не смотрела.
Может, так?
Только, какую дату оставлять в выборке, нет указаний, сделала "последнюю подходящую".

Запрос1
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Код,
       (SELECT TOP 1 Дата FROM тУСН17 WHERE Дата<Forms!фГлавная!ДатаПо ORDER BY Дата DESC) AS DДата, 
       -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS DАванс,
       (SELECT TOP 1 ДатаРеализации FROM тУСН17 WHERE ДатаРеализации<Forms!фГлавная!ДатаПо ORDER BY Дата DESC) AS DДатаРеализации, 
       -Sum(ДатаРеализации*(Дата<Forms!фГлавная!ДатаПо)) AS DСумма
FROM тУСН17
GROUP BY Код

Запрос2
Код: sql
1.
2.
3.
4.
5.
SELECT Код,
       Max(ДатаДоплаты) AS DДатаДоплаты,
       Sum(СуммаДоплаты) AS DСуммаДоплаты
FROM тУСН17доплата
GROUP BY Код

Итоговый запрос
Код: sql
1.
2.
SELECT *
FROM Запрос1 INNER JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445025
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37,

Пример не смотрела.
Может, так?
Только, какую дату оставлять в выборке, нет указаний, сделала "последнюю подходящую".

Запрос1
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Код,
       (SELECT TOP 1 Дата FROM тУСН17 WHERE Дата<Forms!фГлавная!ДатаПо ORDER BY Дата DESC) AS DДата, 
       -Sum(Аванс*(Дата<Forms!фГлавная!ДатаПо)) AS DАванс,
       (SELECT TOP 1 ДатаРеализации FROM тУСН17 WHERE ДатаРеализации<Forms!фГлавная!ДатаПо ORDER BY Дата DESC) AS DДатаРеализации, 
       -Sum(ДатаРеализации*(Дата<Forms!фГлавная!ДатаПо)) AS DСумма
FROM тУСН17
GROUP BY Код

Запрос2
Код: sql
1.
2.
3.
4.
5.
SELECT Код,
       Max(ДатаДоплаты) AS DДатаДоплаты,
       Sum(СуммаДоплаты) AS DСуммаДоплаты
FROM тУСН17доплата
GROUP BY Код

Итоговый запрос
Код: sql
1.
2.
SELECT *
FROM Запрос1 INNER JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;



Дата из главной формы берется, там календарик всплывающий. Я тестирую на дату 28.02.2017

Создал запросы. Проверил на данных. Конечно, не все работает...
Например в Запросе2 нет сравнения с датой из главной формы. Но решения оригинальные. Смотрю и удивляюсь на многовариантность решений!
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445029
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37Дата из главной формы берется, там календарик всплывающий. Я тестирую на дату 28.02.2017Вопрос не об этой дате.
Если в первой таблице несколько Авансов или Реализаций для одного Кода, какую дату брать.
Это на суммы не влияет, просто для показа в сводке

Alex37Создал запросы. Проверил на данных. Конечно, не все работает...
Например в Запросе2 нет сравнения с датой из главной формы. Но решения оригинальные. Смотрю и удивляюсь на многовариантность решений!Это - прошу прощения.
Выпало при переписывании.
Конечно, так было задумано:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT Код,
       Max(ДатаДоплаты) AS DДатаДоплаты,
       Sum(СуммаДоплаты) AS DСуммаДоплаты
FROM тУСН17доплата
WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо
GROUP BY Код 
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445030
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Если же в первой таблице для каждого Кода всегда не больше одной записи,
то Запрос1 можно вообще упростить.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445033
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАAlex37,

примерно так

запрос z11 --слияние на 1 апреля
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT Код,1 as ns, [№договора], Дата,
 Заказчик, Реализация, ДатаРеализации,
 Сумма, Аванс, [Оплата100%], [№счета],
 ccur(0) AS doplata
FROM тУСН17

UNION ALL
 SELECT [КодУСН],2,"",[ДатаДоплаты],"","","","","","","",  [СуммаДоплаты]
FROM тУСН17доплата
WHERE ((([ДатаДоплаты])<#4/1/2017#))
ORDER BY 1, 2;


Кодns№договораДатаЗаказчикРеализацияДата РеализацииСуммаАвансОплата 100%№счетаdoplata111204-б11.11.2013ООО "Порта плюс222"-115.03.201725000500000,00р.1219.01.20175 000,00р.1216.01.201710 000,00р.21109-н18.03.2017Филюшкина С.Е.022.03.201703000000,00р.31145-б24.03.2017ИП Белов А.А.-128.03.201720001000-11100,00р.3230.03.2017100,00р.3229.03.2017200,00р.3228.03.2017500,00р.341113-б17.03.2017ИП Белов А.А.-122.03.20173455015000-10,00р.34224.03.201719 550,00р.361146-б03.03.2017ООО "Окна плюс"-120.04.2017200001600001360,00р.371147-б03.04.2017ИП Озеров Н.А.-120.04.2017300002000001350,00р.87120002.02.2017ИП "Пупкин"-121.03.20171000004900002000,00р.881222220.04.2017ОООООО-123.04.201710000500000,00р.

обічніе итого

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT  z11.Код, First(z11.ns) AS [First-ns],
 First(z11.[№договора]) AS [First-№договора],
 First(z11.Дата) AS [First-Дата],
 First(z11.Заказчик) AS [First-Заказчик],
 First(z11.Реализация) AS [First-Реализация],
 First(z11.ДатаРеализации) AS [First-ДатаРеализации],
 First(z11.Сумма) AS [First-Сумма],
 First(z11.Аванс) AS [First-Аванс],
 First(z11.[Оплата100%]) AS [First-Оплата100%],
 First(z11.[№счета]) AS [First-№счета],
 Sum(z11.doplata) AS [Sum - doplata]
FROM z11
GROUP BY z11.Код;


КодFirst-nsFirst- №договораFirst-ДатаFirst-ЗаказчикFirst- РеализацияFirst-Дата РеализацииFirst-СуммаFirst-АвансFirst-Оплата 100%First-№счетаSum - doplata111204-б11.11.2013ООО "Порта плюс222"-115.03.2017250005000015 000,00р.21109-н18.03.2017Филюшкина С.Е.022.03.201703000000,00р.31145-б24.03.2017ИП Белов А.А.-128.03.201720001000-1110800,00р.341113-б17.03.2017ИП Белов А.А.-122.03.20173455015000-119 550,00р.361146-б03.03.2017ООО "Окна плюс"-120.04.2017200001600001360,00р.371147-б03.04.2017ИП Озеров Н.А.-120.04.2017300002000001350,00р.87120002.02.2017ИП "Пупкин"-121.03.20171000004900002000,00р.881222220.04.2017ОООООО-123.04.201710000500000,00р.
Спасибо. Интересное решение. Возьму идею на вооружение, как подготовка таблиц для дальнейшей обработки. Надо попробовать.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445034
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37,

Если же в первой таблице для каждого Кода всегда не больше одной записи,
то Запрос1 можно вообще упростить.

В том и проблема (для меня), что записей легко может быть больше одной.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445035
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37__MichelleAlex37,

Если же в первой таблице для каждого Кода всегда не больше одной записи,
то Запрос1 можно вообще упростить.

В том и проблема (для меня), что записей легко может быть больше одной.Этот случай как раз уже учтен в вышеприведенном Запрос1.
И почему проблема?
Рабочий момент.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445041
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37Дата из главной формы берется, там календарик всплывающий. Я тестирую на дату 28.02.2017Вопрос не об этой дате.
Если в первой таблице несколько Авансов или Реализаций для одного Кода, какую дату брать.
Это на суммы не влияет, просто для показа в сводке

Alex37Создал запросы. Проверил на данных. Конечно, не все работает...
Например в Запросе2 нет сравнения с датой из главной формы. Но решения оригинальные. Смотрю и удивляюсь на многовариантность решений!Это - прошу прощения.
Выпало при переписывании.
Конечно, так было задумано:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT Код,
       Max(ДатаДоплаты) AS DДатаДоплаты,
       Sum(СуммаДоплаты) AS DСуммаДоплаты
FROM тУСН17доплата
WHERE ДатаДоплаты<Forms!фГлавная!ДатаПо
GROUP BY Код 


Для каждого Кода первой таблицы может быть только по одному Авансу и Реализации. Причем Аванс может быть единственным числом в строке.
Да, спасибо. Отсутствие WHERE заметил, добавил.
В первом запросе непонятка такая:
Код: sql
1.
DСумма: -Sum([ДатаРеализации]*([Дата]<[Forms]![фГлавная]![ДатаПо]))


выдает какое-то число. Количество дней от чего-то там?
Но данные отобрал правильно.
Запрос2 так же правильно отработал.
А вот Итоговый запрос ничего не показывает.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445044
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37В первом запросе непонятка такая:
Код: sql
1.
DСумма: -Sum([ДатаРеализации]*([Дата]<[Forms]![фГлавная]![ДатаПо]))


выдает какое-то число. Количество дней от чего-то там?
Но данные отобрал правильно.
Запрос2 так же правильно отработал.
А вот Итоговый запрос ничего не показывает.Вот опять моя опечатка.(((
Стоят тут над душлй.)))
Конечно, должно быть
Код: sql
1.
-Sum(Сумма*(Дата<Forms!фГлавная!ДатаПо)) AS DСумма


Теперь что Итоговый будет показывать?
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445045
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Еще заметила недочет, вот так надо:
Код: sql
1.
-Sum(Сумма*(ДатаРеализации<Forms!фГлавная!ДатаПо)) AS DСумма
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445047
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37,

Еще заметила недочет, вот так надо:
Код: sql
1.
-Sum(Сумма*(ДатаРеализации<Forms!фГлавная!ДатаПо)) AS DСумма


Итоговый запрос ничего не показывает. Может из-за того, что запрос1 выдает 8 строк (причем актуальных там 2, остальные с нулевыми значениями, а запрос2 - всего 2 строки?
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445052
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Можете показать, что выдают первый и второй запросы?
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445057
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37,

Можете показать, что выдают первый и второй запросы?


...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445059
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Я табличку сделал, какие данные должны попадать в обработку и какой должен быть итог:
Код указан для основной таблицы тУСН17.

...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445061
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Понятно.
Нет одинаковых Кодов, по которым должна быть связь.

Для начала так попробуйте, а потом надо окончательно подправить,
чтобы учитывались подобные ситуации.
Код: sql
1.
2.
SELECT *
FROM Запрос1 LEFT JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;

или
Код: sql
1.
2.
SELECT *
FROM Запрос1 RIGHT JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;


Сейчас пока отвлекусь, где-то через час-два посмотрю.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445072
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleAlex37,

Понятно.
Нет одинаковых Кодов, по которым должна быть связь.

Для начала так попробуйте, а потом надо окончательно подправить,
чтобы учитывались подобные ситуации.
Код: sql
1.
2.
SELECT *
FROM Запрос1 LEFT JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;

или
Код: sql
1.
2.
SELECT *
FROM Запрос1 RIGHT JOIN Запрос2 ON Запрос1.Код = Запрос2.Код;


Сейчас пока отвлекусь, где-то через час-два посмотрю.
Вот результаты обоих вариантов:

...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445076
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного код подправил. добавил один запросик. столбцы А1, S1, D1 лишние? ну выкинуть их не составит труда?
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445085
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleckoнемного код подправил. добавил один запросик. столбцы А1, S1, D1 лишние? ну выкинуть их не составит труда?
Очень, очень близко к теме!!! Да, столбцы А1, S1, D1 лишние. Но это не проблема.
Заметил такую вещь. Например, не все данные видны.
Установил дату 31.03.2017 - Нет в списке строки с кодом 2 (а там даты для Аванса и Реализации ??.03.2017)
При установленной дате 30.04.2017 этого кода так же нет.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445087
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
и ещё, установил дату 31.01.2017 - так стали видны ВСЕ записи, кроме строки с кодом=2.
...
Рейтинг: 0 / 0
Сложный простой запрос
    #39445090
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37,

Так, отвлечься оказалось полезно.
Новый взгляд возник.
Правильно ли я понимаю, что задача состоит в том,
чтобы получить три итоговые суммы,
не заостряя внимание на причастных к ним Кодах?
Тогда и запросов вспомогательных не надо.
Все сразу получим одним коротким запросом
Код: 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
25 сообщений из 35, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный простой запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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