Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Группировки по нескольким цифровым колонкам! (число прочтений - 1506 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Группировки по нескольким цифровым колонкам!
15. Октября 2009 :: 08:29
Печать  
Народ помогите плизз, есть запрос к регистру Продажи и получаем там товар проданный за период, и еще в отдельную (в эту же к сожалению нельзя) нужно добавить количество по так называемым нормам (это справочник подчиненный этому товару и количество там периодическое), код ниже...
Проблема в том что получается следующее при группировке количество Норма нормальное, а вот количество товара умножается на количество строк в нормах, а это не правильно, как правильно свернуть?

Код
Выбрать все
		|SELECT Обороты.ТМЦ [ТМЦ $Справочник.ТМЦ]
		|	, $НормыСписания.ТМЦ [Материалы $Справочник.ТМЦ]
		|	, $ПоследнееЗначение.НормыСписания.Норма(НормыСписания.ID,  [КоличествоМат]
		|	, Обороты.КоличествоОборот Количество
		|	, Обороты.СебестВнешОборот СебестВнеш
		|	, Обороты.СебестВнешВалОборот СебестВнешВал
		|	, left(Обороты.ПозицияДокумента,8) Дата
		|FROM $РегистрОбороты.Продажи(:Начало,:Конец~,Документ,,
		|		(ТМЦ IN (SELECT val FROM #СписокТМЦ)),
		|		ТМЦ,
		|		(Количество, СебестВнеш, СебестВнешВал)) AS Обороты
		|left join $Справочник.НормыСписания as НормыСписания (nolock) on НормыСписания.PARENTEXT=Обороты.ТМЦ
		|";
 



ИТОГ: Получается при реаль но 6 шт товара такая таблица:

ТМЦ1 - 6шт, Нормы1 - 4шт
ТМЦ1 - 6шт, Нормы2 - 2шт
ТМЦ1 - 6шт, Нормы3 - 6шт
ТМЦ1 - 6шт, Нормы4 - 3шт

ну и при свертывании ТМЦ1 становится не 6шт само собой, а 24 Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Группировки по нескольким цифровым колонкам!
Ответ #1 - 15. Октября 2009 :: 08:45
Печать  
а что получить нужно?
ТМЦ1 - 6шт, Нормы - 15шт
?
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Группировки по нескольким цифровым колонкам!
Ответ #2 - 15. Октября 2009 :: 09:09
Печать  
alexdd писал(а) 15. Октября 2009 :: 08:45:
а что получить нужно?
ТМЦ1 - 6шт, Нормы - 15шт
?

не совсем:
ТМЦ1 - 6шт
       |
       |Нормы1 - 4шт
       |Нормы2 - 2шт
       |Нормы3 - 6шт
       |Нормы4 - 3шт
и т.д.

Тоесть я выкидываю это в ТП+Дерево, там свернет и должно показать при развороте так как я показал выше!
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Группировки по нескольким цифровым колонкам!
Ответ #3 - 15. Октября 2009 :: 09:55
Печать  
выкинул в ИТЗ и потом свернул без колонки количества товара, вроде получилось, однако извращенно.
хотелось бы понять реально ли в запросе сделать Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Группировки по нескольким цифровым колонкам!
Ответ #4 - 15. Октября 2009 :: 10:23
Печать  
на t-sql такое писать это не меньшее извращение Улыбка
как-то так что-ли
Код
Выбрать все
declare @tmp table(ТМЦ varchar(10), Кво int,Норма varchar(10),КвоНорма int)

insert into @tmp
select
'ТМЦ1' ТМЦ,6 Кво,'Норма1' Норма,4
union all select
'ТМЦ1' ТМЦ,6 Кво,'Норма2' Норма,2
union all select
'ТМЦ1' ТМЦ,6 Кво,'Норма3' Норма,6
union all select
'ТМЦ1' ТМЦ,6 Кво,'Норма4' Норма,3

select
 case when grouping(Норма) = 1 then ТМЦ else max(Норма) end Колонка1,
 case when grouping(Норма) = 1 then max(Кво) else sum(КвоНорма) end Колонка2
from
 @tmp
group by ТМЦ, Норма with rollup
having grouping(ТМЦ)=0
order by grouping(Норма) desc 


результат
Колонка1   Колонка2    
---------- -----------
ТМЦ1       6
Норма1     4
Норма2     2
Норма3     6
Норма4     3

(5 row(s) affected)
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Группировки по нескольким цифровым колонкам!
Ответ #5 - 15. Октября 2009 :: 10:27
Печать  
эээ нет, заранее количество норм я не могу знать оно разное и это жесть конечно Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать