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


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Помогите с ошибкой в запросе
05. Июня 2009 :: 08:58
Печать  
Написала запрос,-не работает
Код
Выбрать все
ТекстЗапроса="
|SELECT
|  $ДокРРСтр.Контрагент [Контрагент $Справочник.Контрагенты]
|  ,sum($ДокРРСтр.СуммаЗакупок) as СуммаЗакупок
|  ,sum($ДокРРСтр.Приход) as СуммаПриход
|  ,CASE WHEN ($ДокРРСтр.Документ = :ВыбДокумент) THEN sum($ДокРРСтр.Расход) END AS СуммаРасходаДок
|  ,CASE WHEN  (not($ДокРРСтр.Документ = :ВыбДокумент)) THEN sum($ДокРРСтр.Расход) END AS СуммаРасхода
|	FROM $ДокументСтроки.БонусыПокупателям as ДокРРСтр
|	INNER JOIN $Документ.БонусыПокупателям ДокРР ON (ДокРР.iddoc=ДокРРСтр.iddoc)
|	INNER JOIN _1sjourn Жур ON (Жур.iddoc=ДокРРСтр.iddoc)
|							AND(Жур.date_time_iddoc BETWEEN :ДатаНач AND :ДатаКон)and (Жур.IsMark=0)
|WHERE ($ДокРРСтр.Контрагент = :ВыбКлиент)
|Group By $ДокРРСтр.Контрагент
|";
 


не работает из за куска где CASE.Реквизиты Контрагент,Документ,СуммаЗакупок,Приход,Расход -это строки документа.Как мне в запросе выбрать сумму расхода по всем документам и по конкретному?Помогите,пж
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите с ошибкой в запросе
Ответ #1 - 05. Июня 2009 :: 09:19
Печать  
sum(CASE WHEN ($ДокРРСтр.Документ = :ВыбДокумент) THEN $ДокРРСтр.Расход else 0 END) AS СуммаРасходаДок
  
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите с ошибкой в запросе
Ответ #2 - 05. Июня 2009 :: 09:32
Печать  
Спасибо ,попробую
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Помогите с ошибкой в запросе
Ответ #3 - 05. Июня 2009 :: 10:04
Печать  
Код
Выбрать все
ТекстЗапроса="
|SELECT
|  TMP_TAB.Контрагент as [Контрагент $Справочник.Контрагенты]
|, SUM(TMP_TAB.СуммаЗакупок) as СуммаЗакупок
|, SUM(TMP_TAB.СуммаПриход) as СуммаПриход
|, SUM(TMP_TAB.СуммаРасходаДок) as СуммаРасходаДок
|, SUM(TMP_TAB.СуммаРасхода) as СуммаРасхода
|FROM
|  (SELECT
|     $ДокРРСтр.Контрагент as Контрагент
|   , $ДокРРСтр.СуммаЗакупок as СуммаЗакупок
|   , $ДокРРСтр.Приход as СуммаПриход
|   , CASE WHEN ($ДокРРСтр.Документ = :ВыбДокумент)  THEN $ДокРРСтр.Расход ELSE 0 END   AS СуммаРасходаДок
|   , CASE WHEN ($ДокРРСтр.Документ <> :ВыбДокумент) THEN $ДокРРСтр.Расход ELSE 0 END AS СуммаРасхода
|  FROM $ДокументСтроки.БонусыПокупателям as ДокРРСтр
|   	INNER JOIN $Документ.БонусыПокупателям ДокРР ON (ДокРР.iddoc=ДокРРСтр.iddoc)
|   	INNER JOIN _1sjourn Жур ON (Жур.iddoc=ДокРРСтр.iddoc)
|							AND(Жур.date_time_iddoc BETWEEN :ДатаНач AND :ДатаКон)and (Жур.IsMark=0)
|  WHERE $ДокРРСтр.Контрагент = :ВыбКлиент
|  ) as TMP_TAB
|Group By TMP_TAB.Контрагент
|";

 

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


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите с ошибкой в запросе
Ответ #4 - 05. Июня 2009 :: 10:32
Печать  
Спасибо,все получилось Поцелуй
  
Наверх
 
IP записан
 
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите с ошибкой в запросе
Ответ #5 - 05. Июня 2009 :: 13:00
Печать  
Не срабатывает $ДокРРСтр.Документ = :ВыбДокумент, Реквизит Документ в строке документа тип:Документ, перед запросом ставлю      ));
Не выбирает значения по документу

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


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
Re: Помогите с ошибкой в запросе
Ответ #6 - 05. Июня 2009 :: 13:01
Печать  
что то видно опять я не так делаю(
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите с ошибкой в запросе
Ответ #7 - 05. Июня 2009 :: 13:10
Печать  
тип реквизита наверно документ неопределенного вида?
можно написать что-то вроде
ТекстЗапроса = "... CASE WHEN ($ДокРРСтр.Документ <> "+Метадата.ЗначениеВДлиннуюСтрокуБД(Документ.ТекущийДокумент())+")..."

*Метадата = СоздатьОбъект("MetaDataWork")
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите с ошибкой в запросе
Ответ #8 - 05. Июня 2009 :: 13:14
Печать  
упс, кавычки забылУлыбка
тип реквизита наверно документ неопределенного вида?
можно написать что-то вроде
ТекстЗапроса = "... CASE WHEN ($ДокРРСтр.Документ <> '"+Метадата.ЗначениеВДлиннуюСтрокуБД(Документ.ТекущийДокумент())+"')..."

*Метадата = СоздатьОбъект("MetaDataWork")
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать