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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как сделать отчет?
 
 автор: belvesta   (23.03.2007 в 15:35)   личное сообщение
 
 

Подскажите пожалуйста, как сделать такой отчет, точнее запрос отчету. Я все перепробовала, у меня не получается.
У меня есть Таблица1 - поля ФИО, А/Х, №, Сумма начислено, Дата
Таблица2 - поля №, сумма оплачено
Таблица3 - поля №, сумма отказа.

Мне нужно, чтобы в отчете было так:
ФИО А/Х № Сумма начислено Сумма оплачено Сумма отказа Сальдо Дата

Но у меня не получается, так как сумм отказа меньше, чем начислено, а запрос выводит только столько строк, сколько сумм отказа. Мне нужно, чтобы там, где нет отказа, было пусто. И соответственно сальдо считалось.

  Ответить  
 
 автор: osmor   (23.03.2007 в 16:30)   личное сообщение
 
 

Сначала нужно собрать в одном месте таблицы 2 и 3
делаем запрос "qUnionSun"
примерно так:

SELECT Num, Sum(tblUnion.sumPay) AS [СуммаОплачено], Sum( sumreject) AS [СуммаОтказа]
FROM ((select Таблица2.[№] as Num, Таблица2.[сумма оплачено] as sumPay, 0 as sumreject  from Таблица2 Union select Таблица3.[№]  as Num , 0 as sumPay, Таблица3.[сумма отказа]  as sumreject from Таблица3) as tblUnion)
GROUP BY tblUnion.Num;


В итоге получи запрос с поями

№      СуммаОплачено           СуммаОтказа

Дальше нужно только ее Джойном соеденить с таблицей 1 в новом запросе и на его основе построить отчет

  Ответить  
 
 автор: belvesta   (23.03.2007 в 17:05)   личное сообщение
 
 

а нельзя это все в конструкторе сделать, так как я плохо разбираюсь в SQL?

  Ответить  
 
 автор: osmor   (23.03.2007 в 17:32)   личное сообщение
 
 

Нет в конструкторе нельзя

  Ответить  
 
 автор: belvesta   (28.03.2007 в 15:13)   личное сообщение
 
 

Скажите пожалуйста мне такой глупой куда этот текст вставлять надо? В модуль или в сам запрос?
SELECT Num, Sum(tblUnion.sumPay) AS [SummOplaty], Sum( sumreject) AS [SummOtkaza]
FROM ((select Оплата.[№] as Num, Оплата.[SummOplaty] as sumPay, 0 as sumreject from Оплата Union select Отказ.[№] as Num , 0 as sumPay, Отказ.[SummOtkaza] as sumreject from Отказ) as tblUnion)
GROUP BY tblUnion.Num;

  Ответить  
 
 автор: osmor   (28.03.2007 в 15:30)   личное сообщение
 
 

SQL запрос по сути своей есть текст написанный на языке SQL.
То что ACCESS (или другие построители запросов) показывают как некий конструктор, в результате все равно сохраняется как SQL строка.
Для отго что бы посмотреть SQL представление запроса нужно в режиме конструктора выбрать меню "вид" - "режим SQL"
Откроется окно с тектом, вот туда и нужно ставить текс запроса.
ЗЫ. Не каждый SQL запрос может быть отображен с помощью конструктора

  Ответить  
 
 автор: belvesta   (28.03.2007 в 15:51)   личное сообщение
 
 

когда я это сделала, у меня не так сделось... Мне нужно чтобы по Номеру отбиралось это. Вот так:

У меня есть:
Таблица1. - там про то, сколько начислено
Таблица2 - сколько оплачено
Таблица3 - сколько отказалось оплачивать

Также есть запросы:
Запрос1. - сколько начислено
Запрос2 - сколько оплачено
Запрос3 - сколько отказано

Как проще из этого всего сделать акт сверки:
ФИО (из запроса1 или из таблицы1) Начислено Оплачено (может быть не оплачено) Сумма отказа

  Ответить  
 
 автор: Ирча   (28.03.2007 в 16:20)   личное сообщение
 
 

В идеале... свести начислено оплачено и отказано в оплате в одну таблицу....
если это невозможно имиторовать ФуллДжойн поэтапно

  Ответить  
 
 автор: osmor   (28.03.2007 в 16:21)   личное сообщение
 
 

мой запрос должен вернуть

№      СуммаОплачено           СуммаОтказа


т.е. дальше к нему надо c помощью Join по коду присоеденить таблицу1

  Ответить  
 
 автор: belvesta   (28.03.2007 в 17:10)   личное сообщение
 
 

Можете мне написать как это будет выглядеть?

  Ответить  
 
 автор: belvesta   (28.03.2007 в 17:11)   личное сообщение
 
 

Может лучше запросы свести вместе?

  Ответить  
 
 автор: osmor   (28.03.2007 в 17:20)   личное сообщение
 
 

Я в вашей базе не нашел таблицы "сколько всего начислено"
Каку верно сказал(а) Ирча, было бы логично объединить оплаты и отказы в одной таблице с указанием типа.

  Ответить  
 
 автор: belvesta   (28.03.2007 в 17:33)   личное сообщение
 
 

я почти разобралась! Таблицы соединились!
Как теперь мне соединить Запрос и Этот новый запрос?

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

так же как если бы это были просто таблицы. Добавьте их в новый запрос

  Ответить  
 
 автор: belvesta   (28.03.2007 в 17:50)   личное сообщение
 
 

Когда я сделала новый запрос и внего добавила поля из этих 2-х запросов, то те номера квитанций, которые оплачены не были, они исчезли. То есть те, которые были в другом запросе.

  Ответить  
 
 автор: osmor   (28.03.2007 в 18:09)   личное сообщение
14 Кб.
 
 

соединение "все из ...." см. рис

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

А можно соединить 3 запроса также?
То есть если у них у всех есть одинаковое поле Дата, я хочу, чтобы записи выводились так:

Дата (1 или несколько раз выводится) Сумма1 (все суммы) Сумма2 (все суммы) Сумма3 (все суммы)

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