Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access 2003 Подсчет суммы
 
 автор: Angel   (22.04.2009 в 09:41)   личное сообщение
 
 

Привет всем. Есть несколько таблиц. При составлении запроса получаем следующее:
Товар Стоимость
Пальто 200
Платье 100
Блузка 50

Можно ли сделать так, чтобы в запросе в столбце Стоимость в конце считался итог?

  Ответить  
 
 автор: osmor   (22.04.2009 в 09:44)   личное сообщение
 
 

в отчете или в примечании формы или посчитать сумму отдельным запросом и объединить с основным c помощью Union

  Ответить  
 
 автор: Angel   (22.04.2009 в 09:54)   личное сообщение
 
 

посчитать сумму отдельным запросом и объединить с основным c помощью Union



Можно подробнее?

  Ответить  
 
 автор: osmor   (22.04.2009 в 10:11)   личное сообщение
 
 

Пишите отдельный запрос с группировкой который будет содержать столько же полей что и основной запрос.
Потом объединяете эти два запроса с помощью UNion

select fld1, fld2 From q1
UNION
select fld1, fld2 From qSum

Еще нужно сортировку подобрать так что бы сумма была последней строкой

  Ответить  
 
 автор: Angel   (22.04.2009 в 11:58)   личное сообщение
28 Кб.
 
 

Я начинающий пользователь Access и пока что умею немногое. Можешь на примере рассказать что нужно сделать?.

  Ответить  
 
 автор: osmor   (22.04.2009 в 12:21)   личное сообщение
10 Кб.
 
 

см. аттач
в след. раз, лучше кусок базы т.к. я не умею делать запросы в MS Word, да и самого Word'a у меня нет....

  Ответить  
 
 автор: Angel   (22.04.2009 в 12:32)   личное сообщение
 
 

СПАСИБО!!! ОГРОМНОЕ СПАСИБО!!!!

  Ответить  
 
 автор: Angel   (22.04.2009 в 14:22)   личное сообщение
 
 

Твой пример очень хороший, особенно СтоимостьСИтогомВариант2ОднимЗапросом, но в нем используется только одна таблица.

  Ответить  
 
 автор: Angel   (24.04.2009 в 08:29)   личное сообщение
 
 

У меня есть такой запрос:
SELECT CAODealRegs.RegNumber, CAODocs.DocDate, Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM (CAODealRegs LEFT JOIN CAODocs ON CAODealRegs.ID = CAODocs.DealReg) LEFT JOIN CAOGiveGoods ON CAODocs.ID = CAOGiveGoods.DocID
GROUP BY CAODealRegs.RegNumber, CAODocs.DocDate
HAVING (((CAODocs.DocDate) Like "*2008*") AND ((Sum(CAOGiveGoods.Price)) Is Not Null And Not (Sum(CAOGiveGoods.Price))=0))
ORDER BY CAODocs.DocDate DESC

Используется 3 разных таблицы. Как в этом случае сделать чтобы был итог только в последнем столбце? Нужно этот запрос сохранить и на его основе сделать новый запрос на объединение или можно что-то дописать в этом запросе?

  Ответить  
 
 автор: osmor   (24.04.2009 в 08:59)   личное сообщение
 
 

кусок базы с нужными таблицами и этим запросом можно?

  Ответить  
 
 автор: Angel   (24.04.2009 в 09:10)   личное сообщение
 
 

К сожалению, нет. Может попробуешь так обьяснить?

  Ответить  
 
 автор: Angel   (24.04.2009 в 10:32)   личное сообщение
 
 

Я попробовала сделать так:
SELECT CAODealRegs.RegNumber, CAODocs.DocDate, Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM (CAODealRegs LEFT JOIN CAODocs ON CAODealRegs.ID = CAODocs.DealReg) LEFT JOIN CAOGiveGoods ON CAODocs.ID = CAOGiveGoods.DocID
GROUP BY CAODealRegs.RegNumber, CAODocs.DocDate
HAVING (((CAODocs.DocDate) Like "*2008*") AND ((Sum(CAOGiveGoods.Price)) Is Not Null And (Sum(CAOGiveGoods.Price))<>0))
ORDER BY CAODocs.DocDate DESC
UNION SELECT "ИТОГО:",Null,Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM CAOGiveGoods;

Итог считается, но получается сумма всех значений из CAOGiveGoods.Price, т.е. не учитывается то, что мне нужно только за 2008 год.

  Ответить  
 
 автор: osmor   (24.04.2009 в 10:37)   личное сообщение
 
 

А так?

SELECT CAODealRegs.RegNumber, CAODocs.DocDate, Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM (CAODealRegs LEFT JOIN CAODocs ON CAODealRegs.ID = CAODocs.DealReg) LEFT JOIN CAOGiveGoods ON CAODocs.ID = CAOGiveGoods.DocID
GROUP BY CAODealRegs.RegNumber, CAODocs.DocDate
HAVING (((CAODocs.DocDate) Like "*2008*") AND ((Sum(CAOGiveGoods.Price)) Is Not Null And (Sum(CAOGiveGoods.Price))<>0))
ORDER BY CAODocs.DocDate DESC
UNION SELECT "ИТОГО:",Null,Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM CAOGiveGoods where (CAODocs.DocDate Like "*2008*") ;

  Ответить  
 
 автор: Angel   (24.04.2009 в 10:53)   личное сообщение
 
 

Появляется окно: Введите значение параметра - CAODocs.DocDate. Что это значит?

  Ответить  
 
 автор: osmor   (24.04.2009 в 11:04)   личное сообщение
 
 

так?

SELECT CAODealRegs.RegNumber, CAODocs.DocDate, Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM (CAODealRegs LEFT JOIN CAODocs ON CAODealRegs.ID = CAODocs.DealReg) LEFT JOIN CAOGiveGoods ON CAODocs.ID = CAOGiveGoods.DocID
GROUP BY CAODealRegs.RegNumber, CAODocs.DocDate
HAVING (((CAODocs.DocDate) Like "*2008*") AND ((Sum(CAOGiveGoods.Price)) Is Not Null And (Sum(CAOGiveGoods.Price))<>0))
ORDER BY CAODocs.DocDate DESC
UNION SELECT "ИТОГО:",Null,Sum(CAOGiveGoods.Price) AS [Sum-Price]
FROM CAOGiveGoods INNER JOIN CAODocs ON CAOGiveGoods.DocID = CAODocs.ID where (CAODocs.DocDate Like "*2008*") ;

  Ответить  
 
 автор: Angel   (24.04.2009 в 11:14)   личное сообщение
 
 

Получилось. СПАСИБО!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList