Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Объединение двух запросов (число прочтений - 5933 )
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Объединение двух запросов
16. Апреля 2008 :: 11:12
Печать  
Есть два запроса. В первом ищем по названиям элементы, а во втором номеклатуру с этими элементами. Как их объеденить?
|SELECT Соответствия.ID [Элемент $Справочник.Соответствия]
|FROM $Справочник.Соответствия AS Соответствия
|WHERE
|LOWER(Соответствия.DESCR) Like "+Шаблон("'%[НРег(Стр)]%'");

и

|SELECT Товары.ID [Элемент $Справочник.Товары]
|FROM
|$Справочник.Товары AS Товары
|WHERE ($Товары.Альтернатива = :Соотв)
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #1 - 16. Апреля 2008 :: 13:40
Печать  
через INNER JOIN

гдето так:
SELECT Товары.ID [Элемент $Справочник.Товары]
FROM  $Справочник.Товары AS Товары
inner join $Справочник.Соответствия AS Соответствия Соответствия.id = $товары.Альтернатива
WHERE 
LOWER(Соответствия.DESCR) Like "+Шаблон("'%[НРег(Стр)]%'")
  
Наверх
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #2 - 17. Апреля 2008 :: 13:09
Печать  
Ты наверно хотел сказать так
|SELECT Товары.ID as [Элемент $Справочник.Товары]
                 |FROM
                 |      $Справочник.Товары as Товары
                 |      INNER JOIN $Справочник.Соответствия AS Соответствия ON $Соответствия.Соответствие = $Товары.Цвета1
                 |WHERE
                 |      LOWER(Соответствия.DESCR) Like "+Шаблон("'%[НРег(Стр)]%'")
но он не отрабатывает, выдает пустую ТЗ, а по отдельности все нормально.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #3 - 17. Апреля 2008 :: 13:12
Печать  
А у тебя точно реквизит справочника "Товары" имеет тип "Справочник.Соответствия " ?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #4 - 17. Апреля 2008 :: 13:18
Печать  
И ещё: делай вместо "LOWER(DESCR)" - "UPPER(DESCR)" (соответственно вместо НРЕГ - ВРег)
Будешь попадвть в индекс и летать
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #5 - 17. Апреля 2008 :: 13:22
Печать  
JohnyDeath писал(а) 17. Апреля 2008 :: 13:12:
А у тебя точно реквизит справочника "Товары" имеет тип "Справочник.Соответствия " ?

Нет, ты не понял. У справочник "Товары" есть реквизит "Цвета1" и у справочника "Соответствия" есть реквизит "Соответствие" т.е.  Справочник.Цвета1=Соответствия.Соответствие
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #6 - 17. Апреля 2008 :: 13:24
Печать  
Ну да, тормознул не много. ТОгда спрошу по-другому: они одинакового вида?
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #7 - 17. Апреля 2008 :: 13:25
Печать  
Однозначно
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #8 - 17. Апреля 2008 :: 13:30
Печать  
Я чего-то не пойму. Ты в 0-м посте во 2-м запросе написал:
Код
Выбрать все
WHERE ($Товары.Альтернатива = :Соотв) 


а теперь у тебя:
Код
Выбрать все
$Соответствия.Соответствие = $Товары.Цвета1 


?
что ты передавал в ":Соотв"?
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #9 - 17. Апреля 2008 :: 13:37
Печать  
Ты не обращай внимание на разные имена реквизитов в (0), это просто пример был. А в Соотв я передавл как раз значение Соответствия.Соответствие
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #10 - 18. Апреля 2008 :: 10:31
Печать  
Кто может ответить почему этот запрос находит элемент

|SELECT $Соответствия.Соответствие [Элемент $Справочник]
|FROM $Справочник.Соответствия AS Соответствия
|WHERE
|UPPER(Соответствия.DESCR) Like "+Шаблон("'%[ВРег(Стр)]%'")+"

а в таком варианте этот же код ненаходит

|SELECT Товары.ID as [Элемент $Справочник.Товары]
|FROM
|      $Справочник.Товары as Товары
|WHERE
|      $Товары.Цвета1 IN (SELECT $Соответствия.Соответствие [Элемент $Справочник]
|                  FROM $Справочник.Соответствия AS Соответствия
|            WHERE
|                  UPPER(Соответствия.DESCR) Like "+Шаблон("'%[ВРег(Стр)]%'")+")
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #11 - 18. Апреля 2008 :: 10:33
Печать  
попробуй убрать типизацию в
Цитата:
SELECT $Соответствия.Соответствие [Элемент $Справочник]
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #12 - 18. Апреля 2008 :: 10:37
Печать  
пробовал, тот же результат
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Объединение двух запросов
Ответ #13 - 18. Апреля 2008 :: 10:41
Печать  
Ну всё-таки расскажи про Тип.Вид вот этого: "Товары.Цвета1" и "Соответствия.Соответствие"
  
Наверх
 
IP записан
 
zeek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Зарегистрирован: 16. Апреля 2008
Re: Объединение двух запросов
Ответ #14 - 18. Апреля 2008 :: 10:46
Печать  
Есть справочник "Товары" у него есть реквизит "Цвета1" тип "Справочник.Цвета"
и есть справочник "Соотвествия" с реквизитом "Соответствие" тип "Справочник" так вот в данный момент реквизиты "Цвета1" и "Соответствие" равны значению из "Справочник.Цвета"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать