Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Одинаковые элементы (число прочтений - 2545 )
U_zer
Экс-Участник


Одинаковые элементы
06. Августа 2008 :: 14:09
Печать  
Всем привет!
Код
Выбрать все
	ТЗ = "select
	|СпрТ.Code [Код $строка],
	|СпрТ.id [Товар $Справочник.Товары],
	|$СпрТ.спрАртикул [Артикул $строка]
	|from $Справочник.Товары СпрТ (nolock)
	|where СпрТ.isMark = 0 and СпрТ.isfolder = 2 and Ltrim(Rtrim($СпрТ.спрАртикул))<>'' and Exists (select СпрТ1.id from $Справочник.Товары СпрТ1   (nolock) where Ltrim(Rtrim($СпрТ1.спрАртикул)) = Ltrim(Rtrim($СпрТ.спрАртикул)))
	|order by СпрТ.Descr";
 



Мне надо нечто типа:

Код Товар КодОдинаковогоТовара ОдинаковыйТовар Артикул

Как?
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Одинаковые элементы
Ответ #1 - 06. Августа 2008 :: 20:09
Печать  
примерно гдето так:
Код
Выбрать все
select
	|СпрТ.Code [Код $строка],
	|СпрТ.id [Товар $Справочник.Товары],
	|$СпрТ.спрАртикул [Артикул $строка],
СпрТ1.Code [Код1 $строка],
СпрТ1.id [Товар1 $Справочник.Товары],
$СпрТ1.спрАртикул [Артикул1 $строка]
	|from $Справочник.Товары СпрТ (nolock)
inner join спрТ1 on Ltrim(Rtrim($СпрТ1.спрАртикул)) = Ltrim(Rtrim($СпрТ.спрАртикул)) and спрт1.id<>спрт.id
	|where СпрТ.isMark = 0 and СпрТ.isfolder = 2 and Ltrim(Rtrim($СпрТ.спрАртикул))<>''
	|order by СпрТ.Descr

 

  
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Одинаковые элементы
Ответ #2 - 06. Августа 2008 :: 21:54
Печать  
Товары обязательно одинаковые ЕСТЬ?
А если их > 1?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Одинаковые элементы
Ответ #3 - 07. Августа 2008 :: 05:27
Печать  

Спасибо! Так я пробовал сам, но не учел условия спрт1.id<>спрт.id, И у меня получались 2 одинаковые строки, в которых в колонках код, код1, Товар, товар1 от балды выводится товар. Это потом надо было как-то сворачивать, а хотелось бы прямо из запроса получить по-нормальному.  А сейчас все ок!
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Одинаковые элементы
Ответ #4 - 07. Августа 2008 :: 06:13
Печать  
кстати условий типа "Ltrim(Rtrim($СпрТ1.спрАртикул)) = Ltrim(Rtrim($СпрТ.спрАртикул))" лучше избегать т.к. работает медленее чем "$СпрТ1.спрАртикул = $СпрТ.спрАртикул", т.е. при вводе данных делать ltrim.
  
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Одинаковые элементы
Ответ #5 - 07. Августа 2008 :: 06:23
Печать  
Цитата:
кстати условий типа "Ltrim(Rtrim($СпрТ1.спрАртикул)) = Ltrim(Rtrim($СпрТ.спрАртикул))" лучше избегать т.к. работает медленее чем "$СпрТ1.спрАртикул = $СпрТ.спрАртикул", т.е. при вводе данных делать ltrim.


База писалась еще до появления 1С++, данных дофига, да и лениво, запрос работает секунды (в основном тормозит выгрузка в ТЗ), так что не буду заморачиваться.
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Одинаковые элементы
Ответ #6 - 07. Августа 2008 :: 06:34
Печать  
ну... получение данных в тз уж никак не ускорить Улыбка
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Одинаковые элементы
Ответ #7 - 07. Августа 2008 :: 06:38
Печать  
Цитата:
в основном тормозит выгрузка в ТЗ

Покажи как выгружаешь?
я думаю что надо так:
Код
Выбрать все
Тз = СоздатьОбъект("ИндексированнаяТаблица");
Рез = Запрос.ВыполнитьИнструкцию(ТекстЗапроса,Тз) 


  
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Одинаковые элементы
Ответ #8 - 07. Августа 2008 :: 08:00
Печать  
leshik писал(а) 07. Августа 2008 :: 06:38:
Цитата:
в основном тормозит выгрузка в ТЗ

Покажи как выгружаешь?
я думаю что надо так:
Код
Выбрать все
Тз = СоздатьОбъект("ИндексированнаяТаблица");
Рез = Запрос.ВыполнитьИнструкцию(ТекстЗапроса,Тз) 




Так и выгружаю.
Только в таблицу значений на форме.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Одинаковые элементы
Ответ #9 - 07. Августа 2008 :: 08:51
Печать  
Цитата:
в таблицу значений на форме

я думаю что при выгрузке в Тз на форме - форма обновляется при этом долго...
не хочешь попробовать поставщика данных ТП для индексированной таблицы Подмигивание
по-моему будет гораздо быстрее...
  
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Одинаковые элементы
Ответ #10 - 07. Августа 2008 :: 08:58
Печать  
leshik писал(а) 07. Августа 2008 :: 08:51:
Цитата:
в таблицу значений на форме

я думаю что при выгрузке в Тз на форме - форма обновляется при этом долго...
не хочешь попробовать поставщика данных ТП для индексированной таблицы Подмигивание
по-моему будет гораздо быстрее...


Не хочу. Отчет разовый, нет смысла огород городить ...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать