Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как добавить новый столбец в запрос, но не из таблицы / 8 сообщений из 8, страница 1 из 1
26.07.2017, 14:07
    #39495299
Сергей2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить новый столбец в запрос, но не из таблицы
Добрый день!
Есть запрос вида:

SELECT [Страна эмитента], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Тип мошенничества]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Страна эмитента], [Тип мошенничества], [Квартал и год]
HAVING [Квартал и год] = '3 кв. 2017'

Хочу в конце строки добавить строчку что то типа "Итого", чтобы считалась общее количество и сумма всего выходящего, делаю

SELECT [Страна эмитента], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Тип мошенничества]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Страна эмитента], [Тип мошенничества], [Квартал и год]
HAVING [Квартал и год] = '3 кв. 2017'
union all
SELECT [Всего], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Всего1]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Квартал и год], [Всего]
HAVING [Квартал и год] = '3 кв. 2017'

Так вот проблема в чем - столбца [Всего] и [Всего1] в базе нет, если их убрать - ругается, что не совпадает количество столбцов с объединенное таблицей, а если оставляю [Всего] и [Всего1] - то при запросе просит ввести значение. Можно конечно ничего не вводить, но не комильфо 2 рааа нажимать Ентер, чтоб запрос выгрузился)
Подскажите плз, как правильно добавить несуществующие в таблице столбцы в запрос, чтобы они были пустыми, ну и чтоб не просили ввести для них значения после запуска запроса?
...
Рейтинг: 0 / 0
26.07.2017, 14:22
    #39495315
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить новый столбец в запрос, но не из таблицы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT [Страна эмитента], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Тип мошенничества]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Страна эмитента], [Тип мошенничества]
WHERE [Квартал и год] = '3 кв. 2017'
UNION ALL
SELECT "Все страны", COUNT([ARN]), SUM([Сумма]), "Все виды мошенничества"
FROM [Основная база (Уведомления о мошенничестве в ТСП)]]
WHERE [Квартал и год] = '3 кв. 2017'
...
Рейтинг: 0 / 0
26.07.2017, 14:37
    #39495323
Как добавить новый столбец в запрос, но не из таблицы
Чисто по вопросу:
Код: sql
1.
2.
3.
4.
5.
union all
SELECT ' ' As [Всего], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], ' ' As [Всего1]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Квартал и год],  [Всего]
HAVING [Квартал и год] = '3 кв. 2017'


Но есть пара замечаний.
1. HAVING выполняется после всех группировок и вычислений, и предназначена для применения к результатам вычислений (например HAVING COUNT([ARN]) > 2). Все остальные фильтры указываются в WHERE. Так запрос выполняется быстрее.
2. Если вы отбираете только [Квартал и год] = '3 кв. 2017', то не нужно группировать по [Квартал и год]. Так запрос выполняется быстрее.
3. В UNION запросе имена полей во 2-й и следующих секциях не важны.
Поэтому:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT [Страна эмитента], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Тип мошенничества]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
WHERE [Квартал и год] = '3 кв. 2017'
GROUP BY [Страна эмитента], [Тип мошенничества]
union all
SELECT 'ВСЕГО:', COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], ' '
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
WHERE [Квартал и год] = '3 кв. 2017'
...
Рейтинг: 0 / 0
26.07.2017, 14:41
    #39495325
Как добавить новый столбец в запрос, но не из таблицы
__Michelle
Код: sql
1.
2.
3.
4.
...
FROM ...
GROUP BY ...
WHERE ...

Здаётся мне, что так не взлетит. WHERE идет перед GROUP BY.
...
Рейтинг: 0 / 0
26.07.2017, 14:43
    #39495327
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить новый столбец в запрос, но не из таблицы
__Michelle
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT [Страна эмитента], COUNT([ARN]) as [Количество], SUM([Сумма]) as [Cумма], [Тип мошенничества]
FROM [Основная база (Уведомления о мошенничестве в ТСП)]
GROUP BY [Страна эмитента], [Тип мошенничества]
WHERE [Квартал и год] = '3 кв. 2017'
UNION ALL
SELECT "Все страны", COUNT([ARN]), SUM([Сумма]), "Все виды мошенничества"
FROM [Основная база (Уведомления о мошенничестве в ТСП)]]
WHERE [Квартал и год] = '3 кв. 2017'

Недосмотр.
В первом запросе строки GROUP BY и WHERE нужно поменять местами.
Сначала должна идти строка с WHERE.
...
Рейтинг: 0 / 0
26.07.2017, 14:45
    #39495328
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить новый столбец в запрос, но не из таблицы
Анатолий ( Киев ),

Спасибо.)))
Уже заметила, внесла поправку.
...
Рейтинг: 0 / 0
26.07.2017, 15:03
    #39495342
Сергей2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить новый столбец в запрос, но не из таблицы
Все, понял, через кавычки это делается)
Спасибо)
...
Рейтинг: 0 / 0
26.07.2017, 15:58
    #39495390
Как добавить новый столбец в запрос, но не из таблицы
Сергей2017Все, понял, через кавычки это делается Не всегда. В UNION тип и имена полей задаются 1-й секцией. Если во 2-й секции пустая строка указывается на месте числового поля - не пройдет. Для типов число и дата можно указывать 0. А лучше всего - везде указывать Null.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как добавить новый столбец в запрос, но не из таблицы / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]