Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Помогите с сортировкой.! (число прочтений - 3760 )
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Помогите с сортировкой.!
12. Января 2009 :: 10:56
Печать  
Текст = "
|SELECT
| Спр.ID      as [Эл $Справочник.Абоненты],
| Спр.Descr      as Наименование,
| $Спр.Спринтер as [Спринтер $Справочник.Абоненты],
|FROM
| $Справочник.Абоненты as Спр
|ORDER BY
| $Спр.Спринтер, $Спр.ТипПодключения  ASC

В Справочнике Абоненты в зависимости от типа подключения заполнен реквизит спринтер или самим элементом или другим элементом этого же справочника. требуется получить на выходе данные следующего вида
ТипПодключения - это перечисление содержащее значения 1,2,3,4
Если =1 тогда Спринтер заполнен самим собой иначе другими элементами

Абонент     Спринтер   ТипПодключения
абон1          абон1           1
Абон2          Абон1           2
Абон3          Абон1           3
Абон4         Абон4            1

Сортиовка идет по ТипПодключения и Спринтер в идеале нужно
ТипПодключения,Спринтер,абонент.

у меня не работает сортировка
  
Наверх
ICQ  
IP записан
 
GEORG
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 43
Зарегистрирован: 15. Мая 2008
Re: Помогите с сортировкой.!
Ответ #1 - 12. Января 2009 :: 11:04
Печать  
Сортируешь то ,чего нет в запросе
  
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #2 - 12. Января 2009 :: 11:11
Печать  

|ORDER BY
| $Спр.Спринтер, $Спр.ТипПодключения,Спр.ID
  
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #3 - 12. Января 2009 :: 11:12
Печать  
или

|ORDER BY
| $Спр.Спринтер, $Спр.ТипПодключения,$Спр.наименование
  
Наверх
 
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #4 - 12. Января 2009 :: 11:24
Печать  
Спасибо за путь истинный. Всё работает (почти). Теперь я стал немного умнее.

сортировка по ТипПодключения сработала, по наименованию внутри типа подключения тоже сработала, А самая первая сортировка по Спринтеру не работает. точнее она работает, но нужно сортировать по наименованию, а он по внутреннему идентификатору.

строка сортировки
|      $Спр.Спринтер"+?(ФлНаправления=0," DESC"," ASC")+", $Спр.ТипПодключения  ASC"+", Наименование"+?(ФлНаправления=0," DESC"," ASC");
  
Наверх
ICQ  
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #5 - 12. Января 2009 :: 11:27
Печать  
вопрос в догонку.
А можно  получить следующее значение

Справочник.Абоненты.Спринтер.Наименование

?
  
Наверх
ICQ  
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #6 - 12. Января 2009 :: 11:50
Печать  
Текст = "
|SELECT
| Спр.ID      as [Эл $Справочник.Абоненты],
| Спр.Descr      as Наименование,
| $Спр.Спринтер as [Спринтер $Справочник.Абоненты],
|FROM
| $Справочник.Абоненты as Спр,
| $Справочник.Абоненты as Спр1
|where
|Спр1.ID=$Спр.Спринтер
|ORDER BY
| $Спр1.наименование, $Спр.ТипПодключения,Спр.наименование
  
Наверх
 
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #7 - 12. Января 2009 :: 12:02
Печать  
Запрос в 1С
SELECT
     Спр.ID                              as [Эл $Справочник.Абоненты],
     IIF(Спр.IsMark='*',1,2)      as Метка,
     IIF($Спр.ТипПодключения=$ПустойИД,4,3)      as Метка1,
     нта='2',7,8)))      as Метка2,
     усАбонентаПФР='2',11,12)))      as Метка3,
       Спр.Descr                        as Наименование,
     $Спр.ПФР_АП                  as [ПФР_АП $Справочник.Абоненты],
     $Спр.ТипПодключения            as [ТипПодключения_ $Перечисление.ТипПодключения],
     $Спр.Спринтер                  as [Спринтер $Справочник.Абоненты],
     $Спр.InternalEMail            as ПрограмныйАдрес,
     $Спр.ПФР_СрокДействияСертификата as [СрокСертификатаПФР datetime],
     $Спр.RegDate                  as [ДатаРегистрации datetime],
     $Спр.ПФР_ДатаПодключения as [ДатаРегистрацииПФР datetime]
FROM
       $Справочник.Абоненты as Спр,
       $Справочник.Абоненты as СпрП,
       $Справочник.Абоненты as СпрС
WHERE
     СпрС.ID = $Спр.Спринтер,
     СпрП.ID = $Спр.ПФР_АП,
       ($Спр.СтатусАбонента = '1' OR
       $Спр.СтатусАбонентаПФР = '1')
ORDER BY
     Наименование ASC

Режим отладки:
SELECT
     Спр.ID                              as [Эл_1c_type_Справочник_Абоненты],
     IIF(Спр.IsMark='*',1,2)      as Метка,
     IIF(Спр.sp67='     0   ',4,3)      as Метка1,
     IIF(Спр.sp85='0',5,IIF(Спр.sp85='1',6,IIF(Спр.sp85='2',7,8)))      as Метка2,
     IIF(Спр.sp558='0',9,IIF(Спр.sp558='1',10,IIF(Спр.sp558='2',11,12)))      as Метка3,
       Спр.Descr                        as Наименование,
     Спр.sp527                  as [ПФР_АП_1c_type_Справочник_Абоненты],
     Спр.sp67            as [ТипПодключения__1c_type_Перечисление_ТипПодключения],
     Спр.sp68                  as [Спринтер_1c_type_Справочник_Абоненты],
     Спр.sp21            as ПрограмныйАдрес,
     Спр.sp529 as [СрокСертификатаПФРdatetime],
     Спр.sp19                  as [ДатаРегистрацииdatetime],
     Спр.sp528 as [ДатаРегистрацииПФРdatetime]
FROM
       sc12 as Спр,
       sc12 as СпрП,
       sc12 as СпрС
WHERE
     СпрС.ID = Спр.sp68,
     СпрП.ID = Спр.sp527,
       (Спр.sp85 = '1' OR
       Спр.sp558 = '1')
ORDER BY
     Наименование ASC
Запрос.ВыполнитьИнструкцию(Текст,Данные,1);
{E:\EVRICA\EXTFORMS\ПРОГРАММИСТ\_СПИСОКАБОНЕНТОВ.ERT(94)}: FAILED! ICommandText::Execute(): Command contains unrecognized phrase/keyword.
  
Наверх
ICQ  
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #8 - 12. Января 2009 :: 12:38
Печать  
WHERE
     СпрС.ID = Спр.sp68 AND
     СпрП.ID = Спр.sp527 AND
      (Спр.sp85 = '1' OR
      Спр.sp558 = '1')
  
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #9 - 12. Января 2009 :: 12:39
Печать  
видишь:
FAILED! ICommandText::Execute(): Command contains unrecognized phrase/keyword.
читай синтаксес
  
Наверх
 
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #10 - 12. Января 2009 :: 12:55
Печать  
говорила мама, ночью спать нужно. хотя бы одному. Улыбка

Запрос заработал, но отбирает только те значения где совпадают все три значения. А  мне так не надо.
Придётся сортировать таблицу потом. Улыбка

Спасибо за помощь!!!
  
Наверх
ICQ  
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #11 - 12. Января 2009 :: 12:59
Печать  
я тебя не до конца понял, но играй на условии where логикой and  и or
  
Наверх
 
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #12 - 12. Января 2009 :: 14:51
Печать  
а такой структуры нет?

Справочник.Абоненты.Спринтер.Наименование
  
Наверх
ICQ  
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #13 - 12. Января 2009 :: 15:00
Печать  
нет.
в Справочник.Абоненты.Спринтер хранится Справочник.Абоненты.id
  
Наверх
 
IP записан
 
undo
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Местоположение: Ульянвоск
Зарегистрирован: 25. Декабря 2008
Пол: Мужской
Re: Помогите с сортировкой.!
Ответ #14 - 12. Января 2009 :: 23:48
Печать  
Огромное спасибо! Всё наконецто заработало!!! Радости нет придела.
  
Наверх
ICQ  
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Помогите с сортировкой.!
Ответ #15 - 13. Января 2009 :: 14:47
Печать  
а если еще и в индексы попасть, тогда радости еще больше будет
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать