Имя: Пароль:
1C
1С v8
Ограничение данных при выборке из двух таблиц
0 Septera
 
25.11.11
12:03
Есть запрос:
ВЫБРАТЬ
   СпНоменклатура.Ссылка КАК Ссылка,
   СпНоменклатура1.Ссылка КАК Ссылка1
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпНоменклатура1
       ПО СпНоменклатура.Артикул = СпНоменклатура1.Артикул
           И СпНоменклатура.Ссылка <> СпНоменклатура1.Ссылка
ГДЕ
   СпНоменклатура.ЭтоГруппа = ЛОЖЬ
   И СпНоменклатура1.ЭтоГруппа = ЛОЖЬ

В таблице получается что-то вроде:

/////////////
/поле1/поле2/
/  а  /  б  /
/  б  /  а  /
/////////////

для меня эти две строки одинаковые, как избавится от второй в запросе?
p.s. как избавится программно можно не объяснять))
1 Septera
 
25.11.11
12:04
(0) + так красивее будет:
/////////////
/поле1/поле2/
/  а  /  б  /
/  б  /  а  /
/////////////
2 PVV65
 
25.11.11
12:06
Левое Соединение
3 DrShad
 
25.11.11
12:08
в обработке по поиску и удалению дублей посомтри как пишутся запросы
4 Septera
 
25.11.11
12:10
(2) шутку понял))
(3) вариант, но я уверен на 99% там скд использован, а это один фиг программная обработка
5 DrShad
 
25.11.11
12:10
(4) и причем тут СКД?
6 Septera
 
25.11.11
12:15
(5) без него они на улицу не выходят, не то что сложные запросы составить =)
7 Septera
 
25.11.11
12:23
(3) посмотрел, чуть плохо не стало, они прям боятся оптимизировать, теперь понятно почему дубли у некоторых от полдня и больше ищутся
8 DrShad
 
25.11.11
12:24
ну вот и оптимизируй
9 DrShad
 
25.11.11
12:27
(7) твой запросик в (0) мягко говоря не айс
10 Septera
 
25.11.11
12:30
(9) тема не об этом, как ограничит выборку в запросе?
11 Рэйв
 
25.11.11
12:31
(0)твой запрос идентичен такому
ВЫБРАТЬ
   СпНоменклатура.Ссылка КАК Ссылка,
   СпНоменклатура.Ссылка КАК СсылкаДва
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура

В чем сермяжный смысл? Что хотел то?
12 Рэйв
 
25.11.11
12:32
+(11)Ой, пардон...Неравнство не увидел. Сторно
13 Рэйв
 
25.11.11
12:38
(0)Как то так:

Выбрать
Зап.Ссылка,
ЕстьNULL(Зап2.СсылкаДва,"---") КАК СсылкаДва
 
(ВЫБРАТЬ
   СпНоменклатура.Ссылка КАК Ссылка,
   СпНоменклатура.Артикул КАК Артикул
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура) КАК Зап1
Левое соединение

(ВЫБРАТЬ
   СпНоменклатура2.Ссылка КАК СсылкаДва,
   СпНоменклатура2.Артикул КАК Артикул
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура2) КАК 3ап2
По Зап1.Артиткул=Зап2.Артикул
  И Зап1.Ссылка <>Зап2.СсылкаДва
14 Septera
 
25.11.11
13:09
(13) задвоения остались, но к этому еще и левый стобец в два раза длинее стал
15 Рэйв
 
25.11.11
13:11
(14)нуда..Табличка то полностью всю номенклатуру влево вывела.Если тебе нужны только с одинаковыми артикулами, тогда сделай Внутренее соединение
16 Рэйв
 
25.11.11
13:13
хотя... от дублей чисто запросом наверное не избавиться. Это потом уже при переборе придется колдовать.
17 ptiz
 
25.11.11
13:19
А если три товара с одинаковым артикулом будут?
Может, вывести Артикул, а под ним - двойников?
18 ptiz
 
25.11.11
13:21
Если решать "в лоб", то можно так:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВЫБОР
КОГДА СпНоменклатура.Ссылка.Код < СпНоменклатура1.Ссылка.Код
  ТОГДА СпНоменклатура.Ссылка
ИНАЧЕ ТОГДА СпНоменклатура1.Ссылка
КОНЕЦ КАК Ссылка,
ВЫБОР
КОГДА СпНоменклатура.Ссылка.Код > СпНоменклатура1.Ссылка.Код
  ТОГДА СпНоменклатура.Ссылка
ИНАЧЕ ТОГДА СпНоменклатура1.Ссылка
КОНЕЦ КАК Ссылка1
19 Septera
 
25.11.11
13:25
(16) все равно дубли остались
(17) легко
20 Septera
 
25.11.11
13:27
(18) странно что вообще так можно код то текстовый, но попробывать стоит
21 viktor_vv
 
25.11.11
13:32
Не совсем уверен в синтаксисе, но как-то так.

ВЫБРАТЬ
   СпНоменклатура.Ссылка КАК Ссылка,
   СпНоменклатура1.Ссылка КАК Ссылка1
Поместить ВремТаблица
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпНоменклатура1
       ПО СпНоменклатура.Артикул = СпНоменклатура1.Артикул
           И СпНоменклатура.Ссылка <> СпНоменклатура1.Ссылка
ГДЕ
   СпНоменклатура.ЭтоГруппа = ЛОЖЬ
   И СпНоменклатура1.ЭтоГруппа = ЛОЖЬ
//////////
Выбрать
Врем1.Ссылка Как Номенклатура
ИЗ
Времтаблица Как Врем1
Левое соединение Времтаблица Как Врем2
По Врем1.Ссылка = Врем2.Ссылка1
Где Врем2.Ссылка1 есть Null
22 Septera
 
25.11.11
13:38
(18) Работает!!1! все думал как бы столбцы слева и справа ограничивать на до и после, но идея с Кодом... браво))
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВЫБОР
       КОГДА СпНоменклатура.Ссылка.Код < СпНоменклатура1.Ссылка.Код
           ТОГДА СпНоменклатура.Ссылка
       ИНАЧЕ СпНоменклатура1.Ссылка
   КОНЕЦ КАК Ссылка,
   ВЫБОР
       КОГДА СпНоменклатура.Ссылка.Код > СпНоменклатура1.Ссылка.Код
           ТОГДА СпНоменклатура.Ссылка
       ИНАЧЕ СпНоменклатура1.Ссылка
   КОНЕЦ КАК Ссылка1
ИЗ
   Справочник.Номенклатура КАК СпНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпНоменклатура1
       ПО СпНоменклатура.Артикул = СпНоменклатура1.Артикул
           И СпНоменклатура.Ссылка <> СпНоменклатура1.Ссылка
ГДЕ
   СпНоменклатура.ЭтоГруппа = ЛОЖЬ
   И СпНоменклатура1.ЭтоГруппа = ЛОЖЬ

(21) тоже вариант, но честно, порой легче программно обработать чем временные таблицы строить, а так вариант, почему нет))
AdBlock убивает бесплатный контент. 1Сергей