powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос
17 сообщений из 17, страница 1 из 1
Хитрый запрос
    #32652190
johnny17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, поскажите как сделать следующее, существует след. таблица:
ID int,
OpCode int,
InCode int,
InSum currency,
OutCode int,
OutSum currency

Нужно сгруппировать по opCode и InCode, OutCode - поле Code и получить результат:
OpCode, Code, Sum(InSum), Sum(OutSum) - что-то вроде этого...

Мож коряво объяснил, но мож кто подскажет
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652491
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johnny17OpCode, Code, Sum(InSum), Sum(OutSum) - что-то вроде этого...

Мож коряво объяснил, но мож кто подскажетЭто называется запрос. Информацию можно получить, нажав кнопку F1. Она находится на клавиатуре. Чуточку правее крайней левой верхней кнопки Esc.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652551
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего хитрого здесь нету:

В Аксессе открываете вкладук "Запросы"
Клик по кнопочке "Новый"
Выбираете "Конструктор", и клик по Ок.
Правый клик на верхней части бланка, выбор "Режим SQL"
В редакторе пишете примерно следующее:

SELECT Sum(InSum) as SumIn, Sum(OutSum) as SumOut FROM [Как_там_у_Вас_называется_таблица] GROUP BY opCode, inCode, outCode

(Порядок следования полей после GROUP BY обязателен)

Корявость обьяснения состоит в следующем?

Нужно сгруппировать по opCode и InCode, OutCode - поле Code
Что такое Code ???
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652569
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-metallicвкладук "Запросы"
Клик по кнопочке "Новый"
Выбираете "Конструктор", и клик по Ок.
Правый клик на верхней части бланка, выбор "Режим SQL"Намного проще и нагляднее будет так:
делаем новый запрос, открываем его в конструкторе. Спросит добавить таблицу - заносим нашу.
Потом натыкиваем из неё вниз полей - opcode, outcode, insum, outsum, жмём на иконку сигмы - "групповые операции", пишем вместо названия outcode текст Code: Outcode, у in/out sum пишем вместо "group by" слово "Sum", готово. Если надо - можно выполнить и посмотреть, если нравится - переходим в sql и наслаждаемся готовым текстом запроса.

Опционально от дерьма почистить.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652700
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, можно и так -это не принципиально.
Интересно вот что:

"сгруппировать по opCode и InCode, OutCode - поле Code"

Что сие значит ?
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652711
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-metallicСогласен, можно и так -это не принципиально.
Интересно вот что:

"сгруппировать по opCode и InCode, OutCode - поле Code"

Что сие значит ?Я трактовал это как "в результирующем рекордсете поле outcode надо обозвать code".
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652718
johnny17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как запросы создавать я знаю и кнопка F1 находится тоже, мне нужен совет как именно построить SQL...

Попробую объяснить еще раз, из вышеприведенной таблицы мне нужно построить отчет вида

группировка по OpCode
группировка по (InCode, OutCode но одним полем Code) + подсчет сумм InSumm где InCode=Code, OutSumm где OutCode=Code
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652721
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johnny17Как запросы создавать я знаю и кнопка F1 находится тоже, мне нужен совет как именно построить SQL...

Попробую объяснить еще раз, из вышеприведенной таблицы мне нужно построить отчет вида

группировка по OpCode
группировка по (InCode, OutCode но одним полем Code) + подсчет сумм InSumm где InCode=Code, OutSumm где OutCode=CodeБлин, тебе уже дали два изоморфных решения с идентичными результатами. Чего ж ты ещё хочешь?
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652727
johnny17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К вопросу о Code, Code можно представить так:
select InCode as Code from table
union
select OutCode as Code from table
только с группировкой по OpCode

Кста, если кому не в напряг, пусть свяжется со мной по аське 12762166
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652753
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы посоветовал прежеде всего напрячься и сформулировать задачу понятно и до конца! Лучше всего с примером данных. Уверен, пока будешь формулировать, сам решишь.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652876
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все-таки не понял, как надо делать группировку по InCode и OutCode -
по каждому полю, или по их комбинации ?
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652912
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-metallicЯ все-таки не понял, как надо делать группировку по InCode и OutCode - по каждому полю, или по их комбинации ?Не группировку, а сумму.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652946
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте пример из жизни, а то непонятно
...
Рейтинг: 0 / 0
Хитрый запрос
    #32652970
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в отчете можно организовать вложенную группировку
именно так как хочет вопрошающий
вкладка "отчеты" - новый - мастер отчетов
- поиграться и посмотреть
...
Рейтинг: 0 / 0
Хитрый запрос
    #32653028
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, действительно, это тоже вариант
...
Рейтинг: 0 / 0
Хитрый запрос
    #32653070
johnny17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот реальный набор данных: http://www.monb.com/~johnny/test.html
А вот нужный результат: http://www.monb.com/~johnny/test2.html

Это нужно для отчета, отчет внешний (не в access'e)
...
Рейтинг: 0 / 0
Хитрый запрос
    #32653249
v-metallic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что это можно сделать так:

1. Создать запрос такого содержания:
SELECT opCode, InCode as Code, InSumm, OutSumm FROM MyTable
UNION
SELECT opCode, OutCode, InSumm, outSumm FROM MyTable WHERE outCode NOT IN (SELECT InCode FROM MyTable GROUP BY InCode)

Сохранить этот запрос как, например, MyQuerry

2. На базе сего запроса сделать результирующий запрос:

SELECT opCode, Code, Sum(InSumm), Sum(outSumm) FROM MyQuerry GROUP BY opCode, Code

Но я вышеописанное не испытывал.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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