powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать в запросе вычисляемую строку
6 сообщений из 6, страница 1 из 1
Как создать в запросе вычисляемую строку
    #39691311
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица Products с полями ProductName и ProductCount. В столбце ProductName - "Продукт1", "Продукт2" и "Общее количество продуктов".
Хотелось бы создать запрос с группировкой по ProductName и добавить в него строку "Прочие продукты" = "Общее количество продуктов" - "Продукт1" - "Продукт2".
Подскажите, пожалуйста, как это сделать
...
Рейтинг: 0 / 0
Как создать в запросе вычисляемую строку
    #39691327
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, правильно ли сделал, но в общем получился такой запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT Products.ProductName, Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Общее количество продуктов"
GROUP BY Products.ProductName;
UNION
SELECT Products.ProductName, Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Продукт1"
GROUP BY Products.ProductName;
UNION
SELECT Products.ProductName, Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Продукт2"
GROUP BY Products.ProductName
UNION
SELECT "Прочие продукты", (SELECT Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Общее количество продуктов"
GROUP BY Products.ProductName)-(SELECT Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Продукт1"
GROUP BY Products.ProductName)-(SELECT Sum(Products.ProductCount) AS [SUM]
FROM Products WHERE Products.ProductName="Продукт2"
GROUP BY Products.ProductName) AS [SUM] FROM Products
...
Рейтинг: 0 / 0
Как создать в запросе вычисляемую строку
    #39691348
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cursky,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
SELECT tbl.Pname, Sum(tbl.Pcount) AS [Sum-Pcount]
FROM tbl
GROUP BY tbl.Pname
union
SELECT 'все' , Sum(tbl.Pcount) AS [Sum-Pcount]
FROM tbl
GROUP BY 'все';
...
Рейтинг: 0 / 0
Как создать в запросе вычисляемую строку
    #39691354
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
SELECT 
-Sum(ProductCount*(ProductName="Продукт1")) AS КоличествоПродукт1,
-Sum(ProductCount*(ProductName="Продукт2")) AS КоличествоПродукт2,
-Sum(ProductCount*(ProductName="Общее количество продуктов")) AS ОбщееКоличествоПродуктов,
ОбщееКоличествоПродуктов-КоличествоПродукт1- КоличествоПродукт2 AS ПрочиеПродукты  
FROM Products
...
Рейтинг: 0 / 0
Как создать в запросе вычисляемую строку
    #39691608
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,sdku спасибо за помощь. Объединил оба ваши совета - всё получилось.

Далее уточню следующие детали: в таблице есть ещё стролбцы Дата и Регион, поэтому вычисления должны проводиться по данным, сгруппированным по дате и региону. Делать подзапросы или джойнить таблицу с датами-регионами? Подзавис на этом месте

(Как запрос для итоговых данных - сойдёт, но пока не получается разбивка - сумма берётся по всему столбцу сразу, а не за определённый период в определённом регионе)
...
Рейтинг: 0 / 0
Как создать в запросе вычисляемую строку
    #39691707
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cursky,
есть еще доменные функции(dcount,dmax,dsum-начинается c "D")и если записей не очень много,то вполне можно использовать их в качестве 3 аргумента выводимые в запросе поля-разберитесь с синтаксисом типа:
Код: vbnet
1.
 dsum("поле","таблица","дата=#" & format(полеЗапроса,"mm\/dd\/yy") & "# and регион='" & полеЗапроса & "'") 
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать в запросе вычисляемую строку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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