Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Запрос, Группировка

Доброе утро! Помогите, пожалуйста разобраться:
Есть три таблицы, и запрос (На ссылке)


Результат такой:
ID_zayavka Data_Zayavka Klient_Zayavka Kyzmetturi_Zayavka FIO_Kyzmetker Status_Zayavka
1 02.11.2015 0:00 3 3 Базарқұлов Жасұлан NULL
1 02.11.2015 0:00 3 3 Керимов Самат NULL
2 31.10.2015 0:00 3 1 Қаламбаев Әкімжан NULL
3 31.10.2015 0:00 2 3 Қалдаров Абзал NULL
3 31.10.2015 0:00 2 3 Қаламбаев Әкімжан NULL
3 31.10.2015 0:00 2 3 Керимов Самат NULL
4 02.11.2015 0:00 1 2 Қалдаров Абзал NULL
4 02.11.2015 0:00 1 2 Керимов Самат NULL


Надо группировать так:
ID_zayavka Data_Zayavka Klient_Zayavka Kyzmetturi_Zayavka FIO_Kyzmetker Status_Zayavka
1 02.11.2015 0:00 3 3 Базарқұлов Жасұлан,
Керимов Самат NULL
2 31.10.2015 0:00 3 1 Қаламбаев Әкімжан NULL
3 31.10.2015 0:00 2 3 Қалдаров Абзал, Қаламбаев Әкімжан, Керимов Самат NULL
4 02.11.2015 0:00 1 2 Қалдаров Абзал, Керимов Самат NULL


Помогите пожалуйста, не смог разобраться

К сообщению приложен файл. Размер - 29Kb
Ответ:
Zhassulan
там была только одна таблица, две колонки. А здесь три таблицы

Свяжи

Zhassulan
и группировка

Там тоже группировка

Zhassulan
Не смог объединить группировку с запросом

Вместо
FROM [таблица]

напиши
FROM (текст запроса) AS [таблица]

Временно можешь из запроса сделать вьюв.
Вопрос: Вложенный запрос, группировка

Здравствуйте, делаю группировку результатов запроса, находя для каждого Госномера последнюю (максимальную) дату

SELECT DISTINCT ТО.Госномер, Max(ТО.Дата) AS [Max-Дата]
FROM ТО
GROUP BY ТО.Госномер;


Затем в редакторе пробую построить запрос, который бы отбирал те госномера, пробег у которых сверх 1000км после ТО.

SELECT  Путёвка.Госномер, Путёвка.Расстояние_км, Путёвка.Дата, Запрос2.[Max-Дата]
FROM Путёвка, Запрос2
WHERE (((Путёвка.Госномер)=[Запрос2].[Госномер]) AND ((Путёвка.Дата>=Запрос2.[Max-Дата] )));


Мой запрос выводит записи только одного госномера, на дату ТО первого госномера.
Ответ: Кхм, я закрывал-открывал все вкладки таблиц/запросов, я закрывал-открывал access. И всё равно результат был неверен, но стоило мне его закрыть и открыть через 30 минут после публикации первого сообщения, всё заработало. Ну, спасибо за внимание.
Вопрос: Запрос, Группировка, Суммирование

Добрый день всем!!!
У меня такая задача, не могу разбираться, помогите пожалуйста:

есть Table1, баллы студентов по категориями вопросов:
ID, Stud_ID, Category, Ball
1__1__1__2
2__1__1__1
3__1__1__3
4__1__1__2
5__1__2__4
6__1__2__1
7__1__3__0
8__1__3__2
9__1__3__1
10_2__1__0
11_2__1__2
12_2__2__1
13_2__2__0
14_2__3__2
15_2__3__2

надо группировать результаты каждого студента по категориям:

Stud_ID, Cat1ball, Cat2ball, Cat3ball
1________8_______5________3
2________2_______1________4

как составить запрос, помогите пожалуйста!!!
Ответ: Zhassulan,

Читать про PIVOT. И если кол-во категорий может менять , то ещё и D-SQL
Вопрос: SQL запрос группировка и сортировка

Что-то не получается у меня сочинить SQL-запрос. В общем, есть такая примерно таблица: (там полей больше, но показал только те, которые существенны для задачи)
Требуется вывести для каждого user_id profession, соответствующее наиболее ранней date_to. Заранее благодарю за помощь

Добавлено спустя 7 минут 47 секунд:
Моя первая удачная попытка такая:
Код:
select user_idprofession from CV_education e1 where date_to=(select min(date_tofrom CV_education e2 where e2.user_id=e1.user_id


Работает, но мне не нравится - кажется, потенциально будет очень медленно работать для большого количества записей
Ответ: если там не хайлоад какой, то наверное полюбас хорошо то, что уже работает.
Вопрос: Нужна помощь с запросом. Группировка с секционированием.

Доброго дня,
Нужна помощь в составлении запроса.
Есть таблица:
CREATE TABLE [dbo].[Test] (
[Id] int IDENTITY(1, 1) NOT NULL,
[LineId] int NOT NULL,
[CategoryId] int NOT NULL)
ON [PRIMARY]

IdLineIdCategoryId
113
213
325
425
6118
10111


В поле LineId могут быть только два значения: 1 или 2.
Значения CategoryId - произвольные.

Нужно вывести информацию по последней категории в каждой линии: LineId, CategoryId, Quantity(количество записей с этой категорией). Последними являются записи с бОльшими Id.
Итог выполнения должен быть такой:

LineId CategoryId Quantity
1111
252
Ответ:
Сергей Шелест
iap,

Огромное спасибо. Пойду осмысливать. :)
Заодно тщательно проверьте на других возможных данных.
А то мало ли что...
Вопрос: Запрос. Группировка с нумерацией

Исходная таблица
NAMEDATE
Смирнов2017-11-01
Иванов2017-11-01
Кузнецов2017-11-01
Соколов2017-11-05
Попов2017-11-05
Лебедев2017-11-06
Козлов2017-11-06
Новиков2017-11-06
Морозов2017-11-09
Петров2017-11-09
Волков2017-11-09
Соловьёв2017-11-09
Васильев2017-11-15
Зайцев2017-11-15
Павлов2017-11-15

+ CREATE TABLE
CREATE TABLE "DOC" (
NAME TEXT, 
DATE DATE
);

INSERT INTO "DOC" (NAME, DATE) VALUES("Смирнов", "2017-11-01");
INSERT INTO "DOC" (NAME, DATE) VALUES("Иванов", "2017-11-01");
INSERT INTO "DOC" (NAME, DATE) VALUES("Кузнецов", "2017-11-01");
INSERT INTO "DOC" (NAME, DATE) VALUES("Соколов", "2017-11-05");
INSERT INTO "DOC" (NAME, DATE) VALUES("Попов", "2017-11-05");
INSERT INTO "DOC" (NAME, DATE) VALUES("Лебедев", "2017-11-06");
INSERT INTO "DOC" (NAME, DATE) VALUES("Козлов", "2017-11-06");
INSERT INTO "DOC" (NAME, DATE) VALUES("Новиков", "2017-11-06");
INSERT INTO "DOC" (NAME, DATE) VALUES("Морозов", "2017-11-09");
INSERT INTO "DOC" (NAME, DATE) VALUES("Петров", "2017-11-09");
INSERT INTO "DOC" (NAME, DATE) VALUES("Волков", "2017-11-09");
INSERT INTO "DOC" (NAME, DATE) VALUES("Соловьёв", "2017-11-09");
INSERT INTO "DOC" (NAME, DATE) VALUES("Васильев", "2017-11-15");
INSERT INTO "DOC" (NAME, DATE) VALUES("Зайцев", "2017-11-15");
INSERT INTO "DOC" (NAME, DATE) VALUES("Павлов", "2017-11-15")

Нужно получить таблицу с группированными и пронумерованными записями:
№ п/п Дата Кол-во
1 2017-11-01 3
2 2017-11-05 2
3 2017-11-06 3
4 2017-11-09 4
5 2017-11-15 3

Помогите сделать запрос. Сложность в нумерации:
SELECT "?" AS "№ п/п", 
"DATE" as "Дата", 
COUNT(*) AS "Кол-во"
FROM "DOC" AS B GROUP BY "DATE";
Ответ: Ясно. Нет, я не использую TDBGrid. Сразу в нужный формат (Excel, html, csv и т.п.)
И не слышал, что у TDBGrid есть такая фича. TDataSet может (DataSet.RecNo в OnCalcField)
Вопрос: Сделать группировку по первым четырем знакам значения поля таблицы

Поле ААА содержит значения:
123412121212
123445454545
123464646464
123497979797
...
В запросе группировка типа GROUP BY AAA группирует по значению поля таблицы.
Как сделать группировку по первым 4-ем знакам значения поля таблицы? В моем случае это 1234?
Спасибо
Ответ: Не спорю
Вопрос: Получение агрегированных данных с группировкой по какому-либо признаку из одной таблицы

Собственно вопрос в заголовке. Я не понимаю как запихнуть в такой запрос группировку.
PS: База сугубо учебная для тренировок
Ответ: Премного благодарен
Вопрос: Не работает группировка в Access 2013

Ребят, всем привет!
Про группировки и сортировки знаю достаточно. Уже грубо говоря миллион раз проделывала данную работу, но именно сейчас запара.
В общем у меня есть несколько таблиц, по ним сделан Итоговый запрос.
Теперь мне нужно сформировать отчет по данному запросу.
Отчет с помощью мастера отчетов или просто создания краткого отчета формируется без проблем.
Но! Мне необходимо сделать группировку в отчете по нескольким названиям, сначала "Наименование населенного пункта", потом уже внутри этой группы "Наименование заказчика".
Но у меня как не крути, когда нажимаю Добавить группировку нет выбора именно этих названий, есть другие из этого же запроса, но не те, которые мне нужны.
Скажите пожалуйста, что может быть не так? Я и заново запросы посоздавала другие, и по ним сделала отчеты, а в группировке все равно нет выбора названия нужного мне поля.
Буду очень благодарна за помощь!

Вот скрин, где показано что можно выбрать в группировке.
Ответ: Я решила свою проблему.
Как оказалось, я использовала для полей текстового типа тип "Длинный текст", но это же в Access 2013 является заменой типа в предыдущих версиях тип Поля MEMO. Поменяла все на тип Короткий текст и в группировке стали появляться названия тех полей, которые необходимы.
Вот что значит не учесть изменения версии.
Вопрос: Как в запросе с группировкой получить значение без использования групповых операций по одному из полей?

Приветствую.

По причине большого количества строк в таблице excel решил перейти на access, для подготовки данных с последующей загрузкой результатов в excel. По сути одноразовая задача. Но казалось бы в простом запросе для меня возник нереальный затык, над которым я бьюсь несколько дней и пребываю в шоке от того, что не могу нагуглить ответ на этот вопрос.

Есть исходная таблица. Столбцы: товар, вид операции (покупка или продажа), количество единиц в партии, магазин. В этой таблице разные магазины продают одни и те же товары (например книга, булка, телевизор), но по разным ценам и в разных количествах. Цель создать запрос, который находит минимальную цену продажи для каждого товара из исходной таблицы, указывает магазин, который продаёт по этой минимальной цене и количество товаров в партии.

Казалось бы всё просто. Я создал запрос с группировкой по товару, вид операции "продажа", min по цене. Всё хорошо, я получаю результат. Для каждого товара найдена минимальная цена продажи. Но вот проблема, а как же теперь к найденной строке прицепить какой магазин и в каком количестве продаёт? При добавлении таких полей в запрос с группировкой, требуется указать групповую операцию, а мне нужно отобразить исходное значение магазина и количество в продаваемой партии для найденной цены. Ни одно из условий группировки не подходит для этой задачи, возможно кроме выражения, но поиски какое же выражение использовать для моей цели, так же не привели к успеху.

Возможно эту задачу можно решить запросом без группировки? Буду благодарен любым подсказкам.
Ответ:
Сообщение от Allexxandr
запрос MaxBuyNeed ничего не выдаёт, так как не находит соответствий.
Сделайте запрос на создание таблицы, связанной со всеми остальными как в MaxBuyNeed. Для максимальной представительности надо новую таблицу "перемешать" случайным образом, чтобы равномерно представить все возможные сочетания. Я предположил, что для этой цели подойдет счетчик, поле Код, но не исключено, что есть лучшие варианты. Эту таблицу перешлите.
SQL
1
2
3
4
5
6
SELECT top 3000 Orders.* INTO OrdersSample
FROM mapRegions INNER JOIN (staStations INNER JOIN (invTypes INNER JOIN Orders 
ON invTypes.typeID = Orders.type) 
ON staStations.stationID = Orders.stationID) 
ON mapRegions.regionID = staStations.regionID
ORDER BY rnd(Код)
Если Вы также удаляли информацию из справочников, то запрос на создание надо делать с усеченными справочниками