Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 11:15   #1
s8259
Пользователь
 
Регистрация: 27.07.2010
Сообщений: 50
По умолчанию Совмещение дат запроса и календаря

Добрый день и здравия всем форумчанам!
Если кто сможет, подскажите направление решения задачи. Есть таблица "График платежей" (с полями "Дата платежа "и "Сумма"). На основании этой таблицы создан запрос, который выводит список дат и сумму всех платежей на эту дату. Но так как платежи не ежедневно, запрос представляет собой "рваный" календарь (даты идут не подряд). Как сделать так, чтобы запрос выводил список дат без разрывов, а в те даты, где нет платежей, в сумме выводил "0"?
Я импортировал из Excel таблицу со списком увеличивающихся дат (календарь) и попытался совместить их в запросе, не получилось. Заранее благодарен, Сергей.
s8259 вне форума Ответить с цитированием
Старый 15.12.2010, 11:42   #2
LittleFatCat
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 68
По умолчанию

Доброго времени суток!

Я думаю, что таблицу с датами и таблицу с выплатами нужно связать в запросе таким образом, чтобы отображать все данные из таблицы с датами и те даты, по которым были платежи, из таблицы выплат. Делается это в мастере запросов правым кликом по связи между таблицами - выпадает меню изменения связи.
LittleFatCat вне форума Ответить с цитированием
Старый 15.12.2010, 11:51   #3
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

и ВАМ как говориться не хворать.

Начнем с того что в вопросе есть не совсем понятные вестчи:
"рваный" календарь

ЗАПРОС на базе таблицы "График платежей",
поэтому он отображает только те даты которые там есть.

Вывод: в таблице должны быть ВСЕ даты

А как это сделать это второй вопрос
myprog вне форума Ответить с цитированием
Старый 15.12.2010, 13:14   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

отвечаю на вопрос, который прозвучал в ответе myprog (весьма толкового ответа, кстати, имхо):

Цитата:
А как это сделать это второй вопрос
беретё календарь, связываете его по left join с выборкой (select'ом, в котором Вы считаете суммы. в тех датах, по которым не было платежей - будет значение NULL
Если надо вместо NULL получить ноль - то используйте coalesce или case или IIF - смотря что у Вас за СУБД...)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.12.2010, 14:12   #5
s8259
Пользователь
 
Регистрация: 27.07.2010
Сообщений: 50
По умолчанию

Большое спасибо всем, кто откликнулся на мою проблему. Я так понял, "left join с выборкой..." позволяет совместить таблицу "Календарь" и таблицу "Платежи". Но как сделать это технически (это должен быть отдельный запрос или таблица и куда прописывать код), я не представляю . На всякий случай, выкладываю БД, если кто-нибудь сможет помочь, буду очень благодарен. С уважением, Сергей.
Вложения
Тип файла: rar База данных1.rar (15.1 Кб, 32 просмотров)
s8259 вне форума Ответить с цитированием
Старый 15.12.2010, 16:01   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

заниматься украшательством нет времени (ибо занят)
так, черновой вариант
Код:
SELECT Календарь.*, Plat.*
FROM Календарь LEFT JOIN 
(SELECT [Платежи].[Дата платежа] AS Dplat, Sum(Платежи.Сумма) AS [Sum - Сумма], Count(*)-1 AS [Count - Платежи] 
FROM Платежи GROUP BY [Платежи].[Дата платежа])  AS Plat ON Plat.Dplat=Календарь.Дата
WHERE (((Календарь.Дата) Between #1/1/2011# And #1/31/2011#));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.12.2010, 16:31   #7
s8259
Пользователь
 
Регистрация: 27.07.2010
Сообщений: 50
По умолчанию

И ненадо ничего украшать. Большое Вам спасибо, все работает.
s8259 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация скрипта календаря Андрей Дмитренко JavaScript, Ajax 1 22.09.2010 09:11
Создание календаря Zhene4ka2607 Помощь студентам 2 08.06.2009 18:59
Запрос по дате календаря ННС Помощь студентам 2 30.03.2009 16:46
Два календаря рядом vladimir_86 JavaScript, Ajax 0 17.01.2008 17:04
Помощь в создании календаря airframe PHP 1 10.12.2007 02:32