Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать сортировку по фильтру в отчете?  (Прочитано 29185 раз)
0 Пользователей и 1 Гость смотрят эту тему.
monrus
Опытный

ru
Offline Offline

« : 31-03-2006 22:12 » 

есть база с ежемесячными выплатами в долларах и рублях. Как сделать отчет, где в итоге будет сумма вылаченных денег отдельно в рублях и долларах. Типа:
Sum(Выплаты) Filter Valuta='рубли'
« Последнее редактирование: 15-12-2007 20:37 от Алексей1153++ » Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 01-04-2006 03:26 » 

Если базы в Excel, самое простое "Данные->Фильтр-Автофильтр" и установить фильтрацию по колонке Валюта.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 01-04-2006 03:39 » 

monrus, задавая вопрос описывай систему полностью, если вопрос по базам то какие базы, в каком виде. Мы не ясновидцы Улыбаюсь
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
monrus
Опытный

ru
Offline Offline

« Ответ #3 : 01-04-2006 22:46 » 

Акцесс
Записан
monrus
Опытный

ru
Offline Offline

« Ответ #4 : 01-04-2006 22:57 » 

Пример типа:
март:
Иванов    1000 руб.
Петров     200 долл.
Сидоров   700 руб.
Мамонтов 300 долл.
_________________
Итого, долл.: 500
Итого, руб.: 1700

Каким образом сделать, чтобы в отчете выводился итог отдельно в долл. и в руб.?
Типа: Итого, долл.: Sum(Сумма) filter Валюта='долл.'
         Итого, руб.: Sum(Сумма) filter Валюта='руб.'
« Последнее редактирование: 15-12-2007 20:38 от Алексей1153++ » Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 02-04-2006 06:17 » 

Используй функцию "БДСУММ":

* БДСУММ.png (2.13 Кб - загружено 2061 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
monrus
Опытный

ru
Offline Offline

« Ответ #6 : 03-04-2006 15:11 » 

Вы правильно поняли что я хотел. Но мне это надо на accessе. Типа такой функции.
Записан
Dusk
Команда клуба

ru
Offline Offline
Пол: Мужской
Редкий, но веселый вид


« Ответ #7 : 04-04-2006 05:52 » 

Делаешь запрос к базе и записываешь результат в переменные, которые потом и вставляешь в отчет. Например:

Select sum(MySumma) dsumm from tblSumma where valute='dollar'
union all
Select sum(MySumma) rsumm from tblSumma where valute='rub'

(Я не помню будел ли работать union all, если нет, то сделай два запроса)
« Последнее редактирование: 15-12-2007 20:39 от Алексей1153++ » Записан

Человек, сделавший хотя бы шаг к цели, сразу становится мишенью для всех отставших
Опыт - это то, что появляется сразу после того, как он был так необходим...
Бывают минуты, когда у тебя есть секунды, чтобы исправить деланное часами и не получить последствия на годы...
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #8 : 04-04-2006 06:23 » 


Цитата
(Я не помню будел ли работать union all, если нет, то сделай два запроса)
лучше использовать GROUP BY

Код:
Select valute, sum(MySumma) dsumm from tblSumma GROUP BY valute

а если исполльзуется отчет в Access, тот там при создании отчета можно указать уровни группировки
Записан

I Have Nine Lives You Have One Only
THINK!
Dusk
Команда клуба

ru
Offline Offline
Пол: Мужской
Редкий, но веселый вид


« Ответ #9 : 04-04-2006 06:44 » 

HandKot, можно и так... Улыбаюсь Хотя так как я написал он четко будет знать в какую ячейку какое значение ставить, а если сделать как ты написал, то там надо будет потом фильтры использовать... Короче из двух вариантов выбирать вопрошающему...
Записан

Человек, сделавший хотя бы шаг к цели, сразу становится мишенью для всех отставших
Опыт - это то, что появляется сразу после того, как он был так необходим...
Бывают минуты, когда у тебя есть секунды, чтобы исправить деланное часами и не получить последствия на годы...
monrus
Опытный

ru
Offline Offline

« Ответ #10 : 04-04-2006 15:43 » 

Вот пример, как там в отчете это представить, помогите, please!!!

* выплаты.rar (15.9 Кб - загружено 917 раз.)
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 05-04-2006 01:05 » 

Код:
Private Sub ПримечаниеГруппы0_Format(Cancel As Integer, FormatCount As Integer)
 Dim rs As Recordset
 Set rs = CurrentDb.OpenRecordset("select Клиенты.Валюта,sum(Клиенты.Сумма) from Клиенты group by Валюта")
 Надпись16.Caption = "Итого, " & rs.Fields(0).Value
 Поле15.Value = rs.Fields(1).Value
 rs.MoveNext
 Надпись18.Caption = "Итого, " & rs.Fields(0).Value
 Поле17.Value = rs.Fields(1).Value
 rs.Close
End Sub
Это решение "в лоб". Нужно еще добавить проверку EOF (конец таблицы)
« Последнее редактирование: 05-04-2006 01:08 от RomCom » Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Dusk
Команда клуба

ru
Offline Offline
Пол: Мужской
Редкий, но веселый вид


« Ответ #12 : 05-04-2006 05:35 » 

В моем варианте получаешь значения в переменные, а потом полям присваиваешь переменные... (кстати можно и сразу в запросе подставлять поля вместо переменных)...
Записан

Человек, сделавший хотя бы шаг к цели, сразу становится мишенью для всех отставших
Опыт - это то, что появляется сразу после того, как он был так необходим...
Бывают минуты, когда у тебя есть секунды, чтобы исправить деланное часами и не получить последствия на годы...
monrus
Опытный

ru
Offline Offline

« Ответ #13 : 07-04-2006 20:50 » 

Вы можете мне это сделать в файле, который я вам выслал?

Finch Не надо посылать один и тот же пост несколько раз.
« Последнее редактирование: 07-04-2006 21:15 от Finch » Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 08-04-2006 05:18 » 

собственно в аттаче  Улыбаюсь

* выплаты.rar (20.5 Кб - загружено 934 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
monrus
Опытный

ru
Offline Offline

« Ответ #15 : 09-04-2006 07:01 » 

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

* NRT.rar (26 Кб - загружено 971 раз.)
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 09-04-2006 14:07 » 

проблема в том, что ты изменил тип данных поля "месяц". Раньше это была строка, а теперь дата. Теперь появилась проблема представления даты. В SQL дата предствляется в виде 01/01/2006 а поле "Месяц" содержит значение выдаваемое в формате 01.01.2006
т.е. надо изменять точки на слеши Улыбаюсь
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
monrus
Опытный

ru
Offline Offline

« Ответ #17 : 09-04-2006 17:19 » 

RomCom, у меня нифига не выходит, помоги
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 10-04-2006 01:07 » 

Задал ты задачку  Улыбаюсь
Данный запрос спосет функция DatePart()

А вообще покопайся в базе Борей (идущей как пример). Там подобное делается встроенными механизмами без VBA.

* Копия NRT.rar (27.43 Кб - загружено 948 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
monrus
Опытный

ru
Offline Offline

« Ответ #19 : 01-05-2006 20:26 » 

тема закрыта
Записан
monrus
Опытный

ru
Offline Offline

« Ответ #20 : 09-08-2006 12:39 » 

Снова открываю тему.
Оказывается DatePArt с параметром m (месяц) - фильтрует по месяцам не зависимо какой год. Т.е. если месяц один а годы разные, то все помещается в этот месяц. как сделать чтобы фильтровалось и по месяцам и по годам в отдельности? Спасибо
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #21 : 10-08-2006 05:38 » 

если правильно понял вопрос, то используй ф-ции YEAR() и MONTH()
Записан

I Have Nine Lives You Have One Only
THINK!
monrus
Опытный

ru
Offline Offline

« Ответ #22 : 10-08-2006 14:06 » 

посмотрим. А так - выше есть ссылка на файл.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #23 : 11-08-2006 11:10 » 

вот посмотрите

ИМХО не совсем правильно задумано, но может по другому и не надо  Улыбаюсь

* Копия NRT.rar (26.05 Кб - загружено 937 раз.)
Записан

I Have Nine Lives You Have One Only
THINK!
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #24 : 11-08-2006 11:57 » 

вот кстати посмотрите
Сделал отчет по другому


* Копия NRT.rar (29.54 Кб - загружено 912 раз.)
Записан

I Have Nine Lives You Have One Only
THINK!
monrus
Опытный

ru
Offline Offline

« Ответ #25 : 12-08-2006 03:46 » 

Спасибо. А где можно найти лит-ру про SQL запросы в Access?
Записан
monrus
Опытный

ru
Offline Offline

« Ответ #26 : 13-08-2006 17:12 » 

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

* NRT 13.08.2006.rar (33.04 Кб - загружено 934 раз.)
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #27 : 14-08-2006 05:43 » 

Спасибо. А где можно найти лит-ру про SQL запросы в Access?
Access поддерживет стандарт ANSI SQL + свои встроенные ф-ции
Смотрите справку Справка по языку Microsoft Jet SQL

И еще один вопрос. Почему в запросе не отображаются поля с пустыми значениями, хотя выборка идет всех полей не равных "руб"лю?
я так думаю потому, что поле Клиенты.Валюта имеет значение NULL и чтобы получить в выборке и эти значение надо условие дополнить следующим кодом
Код:
(Клиенты.Валюта IS NULL)
и должно получиться
Код:
(Клиенты.Валюта<>"руб")OR (Клиенты.Валюта IS NULL)
Записан

I Have Nine Lives You Have One Only
THINK!
monrus
Опытный

ru
Offline Offline

« Ответ #28 : 14-08-2006 15:26 » 

Огромное Спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines