Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Запрос к справочнику с фильтром по группе. (число прочтений - 6581 )
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: Запрос к справочнику с фильтром по группе.
Ответ #15 - 09. Декабря 2008 :: 08:00
Печать  
Z1 писал(а) 05. Декабря 2008 :: 15:19:
Твой запрос не учитывет если в папке  ЭлОС есть подпапки


Что в таком случае я делаю не так?
вот результат работы класса

SELECT ОС.ID as [ОсновныеСредства_1c_type_Справочник_1c_dot_ОсновныеСредства]
, ОС.ParentID as [Родитель_1c_type_Справочник_1c_dot_ОсновныеСредства]
FROM sc548 as ОС
WHERE
ОС.ISFOLDER=2 
and ОС.IsMark = ''
and
(ОС.ID IN (SELECT Val FROM 3d8916ab-be00-48ec-9cf7-72558e34e46f))
  

_1.JPG ( 71 KB | Загрузки )
_1.JPG
Наверх
 
IP записан
 
orv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 16. Декабря 2008
Re: Запрос к справочнику с фильтром по группе.
Ответ #16 - 18. Декабря 2008 :: 05:45
Печать  
     |
     |SELECT
     |    Док.IDDoc                        as [ТекДокумент      $Документ.Реализация],
     |    CASE
     |            WHEN $Док.Контрагент IN (SELECT Val FROM #ГруппаС)
     |            THEN 1
     |            ELSE 2
     |       END  as [Вид_Док $Строка],      
     |       $ДокС.Номенклатура            as [Номенклатура      $Справочник.Номенклатура],
     |       SUM($ДокС.Сумма)            as [Сумма                  $Число],
     |    SUM($ДокС.Количество)      as [Количество            $Число],
     |    SUM($ДокС.СуммаНДС)      as [СуммаНДС            $Число]
     |FROM
     |    $ДокументСтроки.Реализация as ДокС
     |INNER JOIN
     |   $Документ.Реализация as Док
     |      ON  (Док.IDDoc                = ДокС.IDDoc)
     |   AND ($Док.ВидДеятельности = :ВидДеятельностиОпт)
     |INNER JOIN
     |   _1SJourn as Жур ON (Жур.IDDoc = ДокС.IDDoc) AND
     |                      (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) AND
     |                      (Жур.Closed & 1 = 1)
     |
     |
     |GROUP BY
     |
     |Док.IDDoc,
     |    CASE
     |            WHEN $Док.Контрагент IN (SELECT Val FROM #ГруппаС)
     |            THEN 1
     |            ELSE 2
     |       END,      
     |$ДокС.Номенклатура
     |
     |ORDER BY
     |
     |Док.IDDoc
     |
     |";                
   СписокДиллеров = СоздатьОбъект("СписокЗначений");
     СписокДиллеров.ДобавитьЗначение(ГрСубдилеров.ТекущийЭлемент());
     //
     РеалОпт      = СоздатьОбъект("ТаблицаЗначений");ВозвОпт      = СоздатьОбъект("ТаблицаЗначений");
     //
     ЗапросSQL.УстановитьТекстовыйПараметр("НачДата"                          , ВыбНачПериода);
     ЗапросSQL.УстановитьТекстовыйПараметр("КонДата"                          , ВыбКонПериода);
     ЗапросSQL.УложитьСписокОбъектов(СписокДиллеров,"#ГруппаС","Контрагенты" );
     ЗапросSQL.УстановитьТекстовыйПараметр("ВидДеятельностиОпт"        , ВидДеятельностиОпт);

     C:\USERS\BASE\REDUTCOMPL\EXTFORMS\ОТЧЕТОРАБОТЕСЕРВИСА2.ERT(616)}: State 42000, native 8120, message [Microsoft][ODBC SQL Server Driver][SQL Server]Столбец "dh1611.SP1583" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY
Не могу понять почему ругается на поле CASE если CASE убрать работает нормально. В кейс-е не работает именно часть связанная с проверкой по группе справочника, если если не спрашивать через механизм IN то вообще нормально работает?? видел на ветке косяк с поиском работе с группой справочника там тоже ответа нет? че делать ? разработчики помогите
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к справочнику с фильтром по группе.
Ответ #17 - 18. Декабря 2008 :: 06:19
Печать  
orv писал(а) 18. Декабря 2008 :: 05:45:
     |
     |SELECT
     |    Док.IDDoc                        as [ТекДокумент      $Документ.Реализация],
     |    CASE
     |            WHEN $Док.Контрагент IN (SELECT Val FROM #ГруппаС)
     |            THEN 1
     |            ELSE 2
     |       END  as [Вид_Док $Строка],      
     |       $ДокС.Номенклатура            as [Номенклатура      $Справочник.Номенклатура],
     |       SUM($ДокС.Сумма)            as [Сумма                  $Число],
     |    SUM($ДокС.Количество)      as [Количество            $Число],
     |    SUM($ДокС.СуммаНДС)      as [СуммаНДС            $Число]
     |FROM
     |    $ДокументСтроки.Реализация as ДокС
     |INNER JOIN
     |   $Документ.Реализация as Док
     |      ON  (Док.IDDoc                = ДокС.IDDoc)
     |   AND ($Док.ВидДеятельности = :ВидДеятельностиОпт)
     |INNER JOIN
     |   _1SJourn as Жур ON (Жур.IDDoc = ДокС.IDDoc) AND
     |                      (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) AND
     |                      (Жур.Closed & 1 = 1)
     |
     |
     |GROUP BY
     |
     |Док.IDDoc,
     |    CASE
     |            WHEN $Док.Контрагент IN (SELECT Val FROM #ГруппаС)
     |            THEN 1
     |            ELSE 2
     |       END,      
     |$ДокС.Номенклатура
     |
     |ORDER BY
     |
     |Док.IDDoc
     |
     |";                
   СписокДиллеров = СоздатьОбъект("СписокЗначений");
     СписокДиллеров.ДобавитьЗначение(ГрСубдилеров.ТекущийЭлемент());
     //
     РеалОпт      = СоздатьОбъект("ТаблицаЗначений");ВозвОпт      = СоздатьОбъект("ТаблицаЗначений");
     //
     ЗапросSQL.УстановитьТекстовыйПараметр("НачДата"                          , ВыбНачПериода);
     ЗапросSQL.УстановитьТекстовыйПараметр("КонДата"                          , ВыбКонПериода);
     ЗапросSQL.УложитьСписокОбъектов(СписокДиллеров,"#ГруппаС","Контрагенты" );
     ЗапросSQL.УстановитьТекстовыйПараметр("ВидДеятельностиОпт"        , ВидДеятельностиОпт);

     C:\USERS\BASE\REDUTCOMPL\EXTFORMS\ОТЧЕТОРАБОТЕСЕРВИСА2.ERT(616)}: State 42000, native 8120, message [Microsoft][ODBC SQL Server Driver][SQL Server]Столбец "dh1611.SP1583" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY
Не могу понять почему ругается на поле CASE если CASE убрать работает нормально. В кейс-е не работает именно часть связанная с проверкой по группе справочника, если если не спрашивать через механизм IN то вообще нормально работает?? видел на ветке косяк с поиском работе с группой справочника там тоже ответа нет? че делать ? разработчики помогите

надо спрятать внутренний select в другой и его группировать
что-то типа : ( при этом типизацию делай только во внешнем select )

Код
Выбрать все
select a1,a2,a3,sum(s1),sum(s2),sum(s3) from
(
	 select x1 as a1,x2 as a2,x3 as a3,
                res1 as s1, res2 as s2, res3 as s3  from tabl_000
) as tabl1
group by a1,a2,a3
order by a1
 


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать