![]() |
![]() |
![]() |
|
соединение двух таблиц в запросе | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
02.12.14
✎
11:44
|
Добрый день, никак не могу понять, задача такая, соединить две таблицы в запросе, таким образом:
таблица1: Товар, Склад, Артикул, Товар.Артикул. таблица2 Склад. В таблице2 находятся все склады, в таблице1 только склады с пометкой в артикуле удалено. Необходимо на выходе получить такую таблицу: Товар Склад Атрикул, Где по одному товару все склады, если по этому товару и складу есть артикул удалено, то в артикуле ставится удалено, а если в таблице1 Товар.Артикул = удалено, то у всех складов по этому товару в итоговой таблице стоит артикул удалено. Вот что сделал я: ВЫБРАТЬ Склады.Ссылка КАК Склад, НоменклатураТЧАртикул.Ссылка, ВЫБОР КОГДА НоменклатураТЧАртикул.Ссылка.Артикул ПОДОБНО "удалено" ТОГДА НоменклатураТЧАртикул.Ссылка.Артикул ИНАЧЕ ВЫБОР КОГДА НоменклатураТЧАртикул.Артикул ПОДОБНО "удалено" ТОГДА НоменклатураТЧАртикул.Артикул ИНАЧЕ "" КОНЕЦ КОНЕЦ КАК Артикул ИЗ Справочник.Склады КАК Склады ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ТЧАртикул КАК НоменклатураТЧАртикул ПО Склады.Ссылка = НоменклатураТЧАртикул.Склад ГДЕ Склады.Ссылка.Наименование ПОДОБНО "%Торговый зал%" И Склады.ТипСклада = ЗНАЧЕНИЕ(Перечисление.ТипыСкладов.ТорговыйЗал) И НоменклатураТЧАртикул.Ссылка = &Ссылка ИТОГИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Склад) ПО ОБЩИЕ , но это не работает, какие есть идеи? |
|||
1
Ёпрст
гуру
02.12.14
✎
11:47
|
(0) метла и швабра
|
|||
2
Господин ПЖ
02.12.14
✎
11:48
|
ЛЕВОЕ СОЕДИНЕНИЕ
+ ГДЕ как правило сводят все на внутреннее соединение |
|||
3
Ёпрст
гуру
02.12.14
✎
11:50
|
>>>>а если в таблице1 Товар.Артикул = удалено, то у всех складов по этому товару в итоговой таблице стоит артикул
Это же бредовое условие, учитывая, что в "в таблице1 только склады с пометкой в артикуле удалено" ТС, как считаешь ? |
|||
4
Ёпрст
гуру
02.12.14
✎
11:51
|
Если че, cross join и имеешь все склады со всеми товарами и артикулами.
|
|||
5
DmitriyDI
02.12.14
✎
11:55
|
(3) если в Товар.Артикул = удалено, а в таблице1 нет складов с пометкой удалено, значит что товар закрыт по всем магазинам. или я что-то не понимаю?
|
|||
6
Ёпрст
гуру
02.12.14
✎
12:00
|
(5) читаем еще раз (0)
>>> в таблице1 !!ТОЛЬКО!!! склады с пометкой в артикуле !!УДАЛЕНО!!. |
|||
7
DmitriyDI
02.12.14
✎
12:03
|
есть справочник, у него есть табличная часть,
если в справочнике в реквизите артикул стоит удалено, то не зависимо есть ли позиции с пометкой в артикуле удалено в табличной части, для всех складов эта позиция удалена. поэтому поля товар склад артикул, и два разных поля товар.артикул и артикул (из ТЧ) |
|||
8
Ёпрст
гуру
02.12.14
✎
12:05
|
(7) Это новая задача ?
|
|||
9
DmitriyDI
02.12.14
✎
12:06
|
(8) нет это я про условие в (3) зачем оно нужно, наверное не правильно выразился я (6)
|
|||
10
Ёпрст
гуру
02.12.14
✎
12:08
|
хз че тебе надо, для начала, так :
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ТЧАртикул КАК НоменклатураТЧАртикул ПО Склады.Ссылка = НоменклатураТЧАртикул.Склад И НоменклатураТЧАртикул.Ссылка = &Ссылка ГДЕ Склады.Ссылка.Наименование ПОДОБНО "%Торговый зал%" И Склады.ТипСклада = ЗНАЧЕНИЕ(Перечисление.ТипыСкладов.ТорговыйЗал) //И НоменклатураТЧАртикул.Ссылка = &Ссылка |
|||
11
DmitriyDI
02.12.14
✎
12:12
|
(10) да!) почти то что надо, но товар сейчас выбирается только в одной строке где есть связь, а хотелось бы его видеть у каждого магазина
|
|||
12
DmitriyDI
02.12.14
✎
12:13
|
(10) тоже самое у меня получилось, при создание двух временных таблиц, как сказал (2)
|
|||
13
Ёпрст
гуру
02.12.14
✎
12:17
|
ну так делай, че..
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ТЧАртикул КАК НоменклатураТЧАртикул //ПО Склады.Ссылка = НоменклатураТЧАртикул.Склад По Истина И НоменклатураТЧАртикул.Ссылка = &Ссылка ГДЕ Склады.Ссылка.Наименование ПОДОБНО "%Торговый зал%" И Склады.ТипСклада = ЗНАЧЕНИЕ(Перечисление.ТипыСкладов.ТорговыйЗал) //И НоменклатураТЧАртикул.Ссылка = &Ссылка |
|||
14
DmitriyDI
02.12.14
✎
12:21
|
(13) тогда удалено появляется у всех складов, а должно быть на одном
|
|||
15
Ёпрст
гуру
02.12.14
✎
12:23
|
||||
16
Ёпрст
гуру
02.12.14
✎
12:24
|
(14) ну и проверяй это в Выбор - Когда
|
|||
17
DmitriyDI
02.12.14
✎
12:25
|
(15) спасибо) ну буду запариваться соберу тз отдельно
|
|||
18
DmitriyDI
02.12.14
✎
12:29
|
(16) а на что проверять, не совсем понимаю ...
|
|||
19
Ёпрст
гуру
02.12.14
✎
12:31
|
(18) В Выбор Когда воткнешь проверку на это:
>>>тогда удалено появляется у всех складов, а должно быть на одном что было только у нужного склада |
|||
20
DmitriyDI
02.12.14
✎
12:34
|
(19) все я понял, спасибо!
ВЫБОР КОГДА Склады.Ссылка = НоменклатураТЧАртикул.Склад ТОГДА НоменклатураТЧАртикул.Артикул ИНАЧЕ 0 КОНЕЦ КАК Артикул |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |