Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Помогите получить нужный результат в запросе (число прочтений - 3271 )
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Помогите получить нужный результат в запросе
23. Июня 2009 :: 09:00
Печать  
Во код:
Код
Выбрать все
	ТекстЗапроса = "
	|SELECT
	|  Данные.Товар [Товар $Справочник.Номенклатура]
	|  ,IsNull($СвойстваНоменклатуры.ЗначениеСвойства,$ПустойИд) [ЗначениеСвойства $Справочник.ЗначенияСвойств]
	|  ,sum(Данные.ОТовара) as рс
	|FROM (";
	ТекстЗапроса =ТекстЗапроса +ТекстЗапроса1;
	ТекстЗапроса =ТекстЗапроса +"
	|) as Данные
	|LEFT JOIN $Справочник.СвойстваНоменклатуры as СвойстваНоменклатуры ON Данные.Товар=СвойстваНоменклатуры.PARENTEXT
	|WHERE ($СвойстваНоменклатуры.ВидСвойства IN (:ВыбВидСвойства))
	| group by Данные.Товар, IsNull($СвойстваНоменклатуры.ЗначениеСвойства,$ПустойИд)";
 

  у товара есть Свойство,к примеру "Группа" .Оно может быть у одного товара несколько.Нужно,что бы в отчет попадало какое-нибудь одно из двух его значений.иначе результаты задваиваются.Не могу придумать как это сделать.К примеру у одного товара есть значение этого свойства "Гранд" и "Импорт",в отчет попадает две строки по одной номенклатуре.А нужно что бы только одна строка была, любая.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #1 - 23. Июня 2009 :: 09:29
Печать  
|select
|  Данные.Товар [Товар $Справочник.Номенклатура],
|
|  (select top 1 $СвойстваНоменклатуры.ЗначениеСвойства
|   from $Справочник.СвойстваНоменклатуры СвойстваНоменклатуры (nolock)
|   where $СвойстваНоменклатуры.ВидСвойства in (:ВыбВидСвойства)
|     and СвойстваНоменклатуры.parentext = Данные.Товар
|  ) [ЗначениеСвойства $Справочник.ЗначенияСвойств],
|
|  sum(Данные.ОТовара) as рс
|from () as Данные
|group by Данные.Товар
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #2 - 23. Июня 2009 :: 09:31
Печать  
спасибо,попробую
  
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #3 - 23. Июня 2009 :: 09:34
Печать  
а как же тогда группировать по значению свойства?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #4 - 23. Июня 2009 :: 09:40
Печать  
maxa писал(а) 23. Июня 2009 :: 09:34:
а как же тогда группировать по значению свойства?

если оно одно для каждого товара, то зачем группировать?
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #5 - 23. Июня 2009 :: 09:49
Печать  
нет,оно разное.Нужно чтобы в результате была таблица:Товар,Значение свойства,Сумма
  
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #6 - 23. Июня 2009 :: 09:52
Печать  
Просто этих Значений Свойства может быть у товара несколько.Нужно что бы в отчет попадало любое,но одно.А получается в отчете две записи по одному товару,но с разными значениями свойств.
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите получить нужный результат в запросе
Ответ #7 - 23. Июня 2009 :: 10:12
Печать  
сгруппируйте по товару в подзапросе(Данные)
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #8 - 23. Июня 2009 :: 10:23
Печать  
maxa писал(а) 23. Июня 2009 :: 09:49:
нет,оно разное.Нужно чтобы в результате была таблица:Товар,Значение свойства,Сумма

ты меня не правильно понял. Для разных товаров оно может быть конечно разное. Но для каждого товара оно будет одно.
Выполни мой запрос да посмотри.
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #9 - 24. Июня 2009 :: 05:08
Печать  
я отлично все понялА.В Данных у меня итак сгруппировано по товару.Но мне нужно что бы в результирующей ТЗ ,вообще говоря было ЗначениеСвойства и РС.Но можно и Товар,ЗначениеСвойства,РС.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #10 - 24. Июня 2009 :: 06:21
Печать  
ну раз данные сгруппированы по товару, то group by и sum просто не нужны
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #11 - 24. Июня 2009 :: 06:31
Печать  
а как теперь сгруппировать по значению свойства?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #12 - 24. Июня 2009 :: 06:44
Печать  
maxa писал(а) 24. Июня 2009 :: 06:31:
а как теперь сгруппировать по значению свойства?

внести корр.подзапрос (тот который с top 1) в скобки этого выражения
from () as Данные
и сгруппировать
group by Данные.ЗначениеСвойства
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #13 - 24. Июня 2009 :: 07:50
Печать  
Спасибки,все получилось!!!!
  
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #14 - 24. Июня 2009 :: 07:53
Печать  
хочу еще задать вопрос,к примеру текст запроса
Код
Выбрать все
	ТекстЗапроса0 = "
	|(SELECT
	|   $РегПТ.Товар as Товар
	|  ,sum($РегПТ.Оборот)   as рс
	|FROM $Регистр.ПартииТоваров as РегПТ (nolock)
	|INNER JOIN
	|_1sjourn JOURN(nolock) ON (РегПТ.iddoc = JOURN.iddoc AND JOURN.date_time_iddoc >= :ДатаНач AND JOURN.date_time_iddoc <= :ДатаКон~)
	|LEFT JOIN $Документ.РасходнаяНакладная as РасхД ON (РасхД.IDDOC=JOURN.iddoc)
	|LEFT JOIN $Документ.ПриходнаяНакладная as ПрихД ON (ПрихД.IDDOC=JOURN.iddoc)
	| WHERE  ($РегПТ.Оборот<>0) AND ($РегПТ.Фирма = $ПустойИд)+еще коекакой фильтр";
 

а мне нужно получить не сгруппировкой по товарам,а просто сумму всего.Сейчас я  делаю такой запрос ,выгружаю его в таблицу и там делаю Итог("рс").Может можно сразу как-то ожну цифру вытянуть ВСЕГО?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите получить нужный результат в запросе
Ответ #15 - 24. Июня 2009 :: 08:06
Печать  
оставь только sum($РегПТ.Оборот)   as рс
и никаких group by
  

1&&2&&3
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите получить нужный результат в запросе
Ответ #16 - 24. Июня 2009 :: 09:03
Печать  
спасибо
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать