Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 12:38   #1
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию разница после группировки

здравствуйте!
есть запрос :
Код:
SELECT Sum(Приход_Расход.количество) AS [Sum-количество], Приход_Расход.код_продукции, Приход_Расход.признак
FROM Приход_Расход
GROUP BY Приход_Расход.код_продукции, Приход_Расход.признак
ORDER BY Sum(Приход_Расход.количество);
нужно после группировки найти разницу поля [Sum-количество], где одинаковый код_продукции и разный признак (1=приход и 0=расход).
СУБД MS Access
как оформить одним запросом это или как еще можно?
pobedin вне форума Ответить с цитированием
Старый 22.04.2010, 12:53   #2
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
Радость

Цитата:
Сообщение от pobedin Посмотреть сообщение
здравствуйте!
есть запрос :
Код:
SELECT Sum(Приход_Расход.количество) AS [Sum-количество], Приход_Расход.код_продукции, Приход_Расход.признак
FROM Приход_Расход
GROUP BY Приход_Расход.код_продукции, Приход_Расход.признак
ORDER BY Sum(Приход_Расход.количество);
нужно после группировки найти разницу поля [Sum-количество], где одинаковый код_продукции и разный признак (1=приход и 0=расход).
СУБД MS Access
как оформить одним запросом это или как еще можно?
что-то не понял . на примере можешь объяснить?
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума Ответить с цитированием
Старый 22.04.2010, 13:03   #3
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

ну, к примеру. есть товар1, товар2 и т.д. их по 10 записей. есть приход товара (это признак=1) и расход товара (признак=0). я группирую их и суммирую. получается сумма прихода (товара1 и товара2) и расхода (товара1 и товара2) по виду. остается найти разницу, что-то вроде остатка.
pobedin вне форума Ответить с цитированием
Старый 22.04.2010, 13:11   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
SELECT Sum(Приход.количество) AS [Sum-приход], Sum(расход.количество) AS [Sum-расход]
Приход_Расход.код_продукции
FROM Приход_Расход
left join приход_расход Приход on Приход.код_продукции=Приход_Расход.код_продукции and признак=1
left join приход_расход расход on расход.код_продукции=Приход_Расход.код_продукции  and признак=2
GROUP BY Приход_Расход.код_продукции;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.04.2010, 13:39   #5
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

Код:
SELECT Sum(Приход.количество) AS [Sum-приход], Sum(расход.количество) AS [Sum-расход]
так приход_расход одна таблица... а разницу как сделать?
pobedin вне форума Ответить с цитированием
Старый 22.04.2010, 14:47   #6
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
По умолчанию

Цитата:
Сообщение от pobedin Посмотреть сообщение
Код:
SELECT Sum(Приход.количество) AS [Sum-приход], Sum(расход.количество) AS [Sum-расход]
так приход_расход одна таблица... а разницу как сделать?
не знаю как в access но в ms sql легко и просто

SELECT Sum(Приход.количество) AS [Sum-приход]-Sum(расход.количество) AS [Sum-расход] from table_name
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума Ответить с цитированием
Старый 22.04.2010, 15:26   #7
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

я же пишу это одна таблица. как он узнает где приход суммировать, а где расход. поля одинаково называются-то...
pobedin вне форума Ответить с цитированием
Старый 22.04.2010, 15:54   #8
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
По умолчанию

Цитата:
Сообщение от pobedin Посмотреть сообщение
я же пишу это одна таблица. как он узнает где приход суммировать, а где расход. поля одинаково называются-то...
короче скинь саму таблицу с данными
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума Ответить с цитированием
Старый 22.04.2010, 16:47   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вот примерчик оракловый
вам with ни к чему
остальное подправьте для своих данных

Код:
with
  invoices as (
  select 0 type_id, 111 code, 10 qty from dual union all
  select 1, 111, 10 from dual union all
  select 0, 211, 10 from dual union all
  select 1, 211, 5 from dual union all
  select 0, 311, 10 from dual union all
  select 1, 311, 100 from dual union all
  select 0, 411, 10 from dual union all
  select 0, 511, 10 from dual union all
  select 0, 611, 10 from dual union all
  select 1, 611, 11 from dual
  )
  
select 
  code,
  sum(nvl(case when type_id = 0 then qty end, 0)) sum_0,
  sum(nvl(case when type_id = 1 then qty end, 0)) sum_1,
  sum(nvl(case when type_id = 1 then qty end, 0)) -
  sum(nvl(case when type_id = 0 then qty end, 0)) sum_total
from invoices
group by code
order by code
на выходе
Цитата:
code sum_0 sum_1 sum_total
111 10 10 0
211 10 5 -5
311 10 100 90
411 10 0 -10
511 10 0 -10
611 10 11 1
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
представление группировки Domanoff БД в Delphi 13 07.04.2010 18:09
От группировки строк с итогами к реляционной таблице forumdin Microsoft Office Excel 17 14.03.2010 18:39
Группировки в Excel Chelentano Microsoft Office Excel 2 29.07.2009 18:00
Автоматизация группировки данных John Pepper Microsoft Office Excel 6 15.05.2008 15:37