Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема свернуть результат (число прочтений - 1445 )
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
свернуть результат
09. Ноября 2010 :: 08:57
Печать  
Добрый день.
В результате запроса, получаю табличку
nomenkl       sklad        itogo         itogo_rez
    6            22        0.00000      5.00000
    6            22        3777.00000      0.00000
    6            23        0.00000      0.00000
    6            24        0.00000      0.00000
    6            25        0.00000      0.00000
    6            25        120.00000      0.00000

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

nomenkl       sklad        itogo         itogo_rez
    6            22        3777.00000      5.00000
.....

Код
Выбрать все
SELECT sp408 as nomenkl,
	   sp418 as sklad,
		sum(sp411*(debkred*(-2)+1)) as itogo,
	    null as itogo_rez
		FROM RA405 (nolock)
group by sp408, sp418
union
SELECT sp4477 as nomenkl,
	   sp4476 as sklad,
	   null as itogo,
		sum(sp4479*(debkred*(-2)+1)) as itogo_rez
		FROM RA4480  (nolock)
group by sp4477, sp4476
order by nomenkl 


  
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: свернуть результат
Ответ #1 - 09. Ноября 2010 :: 09:42
Печать  
Как-то так:
Код
Выбрать все
SELECT nomenkl
  ,sklad
  ,SUM(itogo)
  ,SUM(itogo_rez)
FROM (
SELECT sp408 as nomenkl,
	   sp418 as sklad,
		sum(sp411*(debkred*(-2)+1)) as itogo,
	    0 as itogo_rez
		FROM RA405 (nolock)

union all

SELECT sp4477 as nomenkl,
	   sp4476 as sklad,
	   0 as itogo,
		sp4479*(debkred*(-2)+1) as itogo_rez
		FROM RA4480  (nolock)
)
group by nomenkl, sklad
order by nomenkl  



P.S. А почему человечискими именами не пользуешься?
  
Наверх
 
IP записан
 
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
Re: свернуть результат
Ответ #2 - 09. Ноября 2010 :: 09:48
Печать  
JohnyDeath писал(а) 09. Ноября 2010 :: 09:42:
Как-то так:


Msg 156, Level 15, State 1, Line 20
Incorrect syntax near the keyword 'group'

JohnyDeath писал(а) 09. Ноября 2010 :: 09:42:
P.S. А почему человечискими именами не пользуешься?


это я в SQL на триггер хочу повесить, поэтому и такие имена
  
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: свернуть результат
Ответ #3 - 09. Ноября 2010 :: 10:13
Печать  
Суммирование в первом подзапросе забыл убрать. Попробуй так:
Код
Выбрать все
SELECT t.nomenkl
  ,t.sklad
  ,SUM(t.itogo)
  ,SUM(t.itogo_rez)
FROM (
SELECT sp408 as nomenkl,
	   sp418 as sklad,
	sp411*(debkred*(-2)+1) as itogo,
	    0 as itogo_rez
FROM RA405 (nolock)

union all

SELECT sp4477 as nomenkl,
	   sp4476 as sklad,
	   0 as itogo,
	sp4479*(debkred*(-2)+1) as itogo_rez
FROM RA4480  (nolock)
) as t
group by t.nomenkl, t.sklad
order by t.nomenkl  

  
Наверх
 
IP записан
 
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
Re: свернуть результат
Ответ #4 - 09. Ноября 2010 :: 10:16
Печать  
спасибо, получилось Улыбка
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать