Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос / 17 сообщений из 17, страница 1 из 1
17.08.2004, 10:29:03
    #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
17.08.2004, 12:21:24
    #32652491
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый запрос
johnny17OpCode, Code, Sum(InSum), Sum(OutSum) - что-то вроде этого...

Мож коряво объяснил, но мож кто подскажетЭто называется запрос. Информацию можно получить, нажав кнопку F1. Она находится на клавиатуре. Чуточку правее крайней левой верхней кнопки Esc.
...
Рейтинг: 0 / 0
17.08.2004, 12:34:39
    #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
17.08.2004, 12:39:54
    #32652569
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый запрос
v-metallicвкладук "Запросы"
Клик по кнопочке "Новый"
Выбираете "Конструктор", и клик по Ок.
Правый клик на верхней части бланка, выбор "Режим SQL"Намного проще и нагляднее будет так:
делаем новый запрос, открываем его в конструкторе. Спросит добавить таблицу - заносим нашу.
Потом натыкиваем из неё вниз полей - opcode, outcode, insum, outsum, жмём на иконку сигмы - "групповые операции", пишем вместо названия outcode текст Code: Outcode, у in/out sum пишем вместо "group by" слово "Sum", готово. Если надо - можно выполнить и посмотреть, если нравится - переходим в sql и наслаждаемся готовым текстом запроса.

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

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

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

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

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

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

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

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

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

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

Это нужно для отчета, отчет внешний (не в access'e)
...
Рейтинг: 0 / 0
17.08.2004, 16:17:04
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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