Вопрос по Access
2857
9
Пал Саныч
activist
Существует некий запрос на объединение, данные для которого он (этот запрос) получает из двух других запросов - поля [дата] и [сумма].
1. Почему этот запрос при суммировании значений поля [сумма] игнорирует одинаковые значения поля [сумма] выбирая лишь одно? Например:
Дата | Сумма
01.01.2001 | 1
01.01.2001 | 2
01.01.2001 | 2
01.01.2001 | 3
ИТОГО: 6
вместо 8?
2. Какие волшебные буквы написать в тексте запроса на объединение, что бы формат поля [сумма] стал "с разделителями разрядов"?
Заранее весьма и весьма благодарен всем откликнувшимся.
1. Почему этот запрос при суммировании значений поля [сумма] игнорирует одинаковые значения поля [сумма] выбирая лишь одно? Например:
Дата | Сумма
01.01.2001 | 1
01.01.2001 | 2
01.01.2001 | 2
01.01.2001 | 3
ИТОГО: 6
вместо 8?
2. Какие волшебные буквы написать в тексте запроса на объединение, что бы формат поля [сумма] стал "с разделителями разрядов"?
Заранее весьма и весьма благодарен всем откликнувшимся.
Mad_Dollar
guru
возможно текст исходных запросов и запроса на объединение поможет решить вопрос быстрее, правда.
Пал Саныч
activist
Первый запрос:
SELECT .ДатаФед, .ВФед, .ПрограммыФедФакт, договоры.Заемщик, договоры.№договора
FROM договоры INNER JOIN 1 ON договоры.Код = .договоры_Код
WHERE (((.ДатаФед) Is Not Null));
Второй запрос:
SELECT .ДатаОбл, .[В%Обл], .ПрограммыОблФакт, договоры.Заемщик, договоры.№договора
FROM договоры INNER JOIN 1 ON договоры.Код = .договоры_Код
WHERE (((.ДатаОбл) Is Not Null));
Запрос на объединение:
select ДатаФед, ВФед, ПрограммыФедФакт,заемщик,№договора,"Федеральный" as[БЮДЖЕТ]
from АГА1
UNION select ДатаОбл, [В%Обл], ПрограммыОблФакт,заемщик,№договора,"Областной"
from АГА2
ORDER BY ДатаФед;
Вместо смайлов прошу читать [ 1 ]. Без пробелов конечно.
SELECT .ДатаФед, .ВФед, .ПрограммыФедФакт, договоры.Заемщик, договоры.№договора
FROM договоры INNER JOIN 1 ON договоры.Код = .договоры_Код
WHERE (((.ДатаФед) Is Not Null));
Второй запрос:
SELECT .ДатаОбл, .[В%Обл], .ПрограммыОблФакт, договоры.Заемщик, договоры.№договора
FROM договоры INNER JOIN 1 ON договоры.Код = .договоры_Код
WHERE (((.ДатаОбл) Is Not Null));
Запрос на объединение:
select ДатаФед, ВФед, ПрограммыФедФакт,заемщик,№договора,"Федеральный" as[БЮДЖЕТ]
from АГА1
UNION select ДатаОбл, [В%Обл], ПрограммыОблФакт,заемщик,№договора,"Областной"
from АГА2
ORDER BY ДатаФед;
Вместо смайлов прошу читать [ 1 ]. Без пробелов конечно.
Mad_Dollar
guru
сделайте в запросах рерультирующие поля одинаковые. Всмысле названия полей. Чтобы если уж была дата, то не датаФед и не дата Обл, а именно дата. Со всеми полями. Через select table.field as union_field_name ... Как-то так.
ЗЫ И никто не говорил, что простой union исключает дублирующие записи. Вам что посчитать надо?
ЗЫ И никто не говорил, что простой union исключает дублирующие записи. Вам что посчитать надо?
zeus
veteran
+1
Используй UNION ALL
В конце агрегаты свернешь GROUP by
Используй UNION ALL
В конце агрегаты свернешь GROUP by
Пал Саныч
activist
Спасибо, получилось, а как формат чисел вывести в формате "с разделителями разрядов" в сводной таблице? Везде где возможно - такой формат стоит, в конструкторе сводной талице - тоже, но выводит общий формат.
Сейчас читают
Простой дозор (часть 2)
142926
1000
Китайские авто
23179
60
Квартира в Сталинском доме. Стоит ли? (часть 3)
116635
366
Mad_Dollar
guru
А вот это не скажу - давно это было. Попробуйте сделать в конструкторе запрос типа "выбрать все поля из запроса на объединение" и там указать тип полей.
Спасибо, получилось, а как формат чисел вывести в формате "с разделителями разрядов" в сводной таблице? Везде где возможно - такой формат стоит, в конструкторе сводной талице - тоже, но выводит общий формат.Возможно вам просто надо настройки системы поменять, а возможно и нет. В любом случае
"число в строку с форматированием" отдавать в запросе на сервер дурной тон.
Реализуйте функцию преобразования числа в строку (с разделителями) при непосредственном выводе таблицы в приложении (клиенте сервера).
Спасибо:
Mad_Dollar
zeus
Победил проблемку Вашими советами.
Mad_Dollar
zeus
Победил проблемку Вашими советами.
ТОП 5
2
3
4