|
Вопрос по поводу левого соединение | ☑ | ||
---|---|---|---|---|
0
Tumakota
06.03.17
✎
15:44
|
Вот сам запрос
ВЫБРАТЬ ОстаткиСклада.Номенклатура, ОстаткиСклада.Характеристика, ОстаткиСклада.КоличествоОстаток КАК ОстатокСклада, ОстаткиМагазина.Склад.Магазин КАК Магазин, ОстаткиМагазина.КоличествоОстаток КАК ОстатокМагазина ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ОстаткиСклада ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ОстаткиМагазина ПО ОстаткиСклада.Номенклатура = ОстаткиМагазина.Номенклатура И ОстаткиСклада.Характеристика = ОстаткиМагазина.Характеристика Я так понимаю здесь срабатывает не левое соединение а внутреннее. Получается, что част ь характеристик товара теряется так как в магазине их нету и поэтому не выводится на основном складе |
|||
1
svsvsv
06.03.17
✎
15:46
|
А для чего вообще соединение:
|
|||
2
svsvsv
06.03.17
✎
15:46
|
?
|
|||
3
mexanik_96
06.03.17
✎
15:47
|
левым с той же таблицей? автор в чем смысл?
|
|||
4
Nuobu
06.03.17
✎
15:47
|
ПО ОстаткиСклада.Номенклатура = ОстаткиМагазина.Номенклатура
И ОстаткиСклада.Характеристика = ОстаткиМагазина.Характеристика И ОстаткиСклада.Склад= ОстаткиМагазина.Склад Вот так вот - будет левое. |
|||
5
mexanik_96
06.03.17
✎
15:48
|
(4) ну в чем смысл то?
|
|||
6
Ёпрст
06.03.17
✎
15:49
|
(0) нет
|
|||
7
Nuobu
06.03.17
✎
15:49
|
(5) В складе.
|
|||
8
СвинТуз
06.03.17
✎
15:50
|
остатки по фирме + остатки оп складу
так вот не мудрено |
|||
9
mexanik_96
06.03.17
✎
15:51
|
(7) смысл в левом какой когда можно одним селектом же все выбрать. я не прав?
|
|||
10
СвинТуз
06.03.17
✎
15:51
|
количество на складе будет списано по средней цене по фирме )
|
|||
11
Nuobu
06.03.17
✎
15:53
|
(9) В одном случае - нужно всё, а в другом - только часть.
В первой таблице идёт отбор на склад. Во второй - отбора нет. Человек хочет сравнить остатки по складу и остатки по фирме в целом - (8) |
|||
12
svsvsv
06.03.17
✎
16:01
|
(11) если делать соединение как в (4), то остатки по фирме будут разбиты по складам, не?
|
|||
13
Вафель
06.03.17
✎
16:03
|
конечно 1 таблица меньше 2, поэтому и соединение внутреннее
|
|||
14
Михаил Козлов
06.03.17
✎
16:04
|
Попробуйте соединять 2-ую таблицу с 1-ой.
|
|||
15
Tumakota
06.03.17
✎
16:17
|
Смысл в том что в первой таблице я беру остатки по основному складу, и к нему прикручиваю остатки складов магазина
|
|||
16
Tumakota
06.03.17
✎
16:20
|
(14) соединил 2 с 1 тоже самое
|
|||
17
HardBall
06.03.17
✎
16:27
|
Полное соединение, + естьNULL по номенклатуре, количеству
|
|||
18
Tumakota
06.03.17
✎
16:34
|
(17) не понял не много?
|
|||
19
svsvsv
06.03.17
✎
16:45
|
Например есть товар А на складе 1 - 100 шт, и товар А на складе 2 - 50 шт. Что должно получиться в результате?
Так: Товар | Склад | Кол-во на складе | Кол-во на фирме А | Склад 1| 100 | 100 А | Склад 2| 100 | 50 или так: Товар | Кол-во на складе | Кол-во на фирме А | 100 | 150 ? |
|||
20
Tumakota
06.03.17
✎
16:52
|
(19) Должно получится, отбор по складу это основной склад, остальные склады это магазины идут, я делаю отборку по основному складу, а все остальные склады должны прикручиваться к этому складу по номенклатуре и характеристике
А 100 50 |
|||
21
Tumakota
06.03.17
✎
16:54
|
Т.е. я хочу левым соединение отобрать все что у меня есть на основном складе, а дальше если есть на складе Магазина то просто подставлять, а у меня получается что если на магазине нету, то и на основном складе не отобразится, т.е. левое соединение не работает
|
|||
22
igork1966
06.03.17
✎
17:00
|
(21) это не левое соединение не работает, это запрос у тебя не работает.
|
|||
23
Tumakota
06.03.17
✎
17:03
|
(22) Ну так я поэтому сюда и написал спросить помощи
|
|||
24
HardBall
06.03.17
✎
17:04
|
Походу это или не весь запрос или вы там тачки возите.
|
|||
25
svsvsv
06.03.17
✎
17:05
|
(21) используй временные таблицы.
Сначала сделай отбор по складу и результат помести в первую временную таблицу (ВТ_ОстаткиНаСкладе) Затем возьми остатки по всем складам, сгруппируй их по номенклатуре и характеристике (склад не выбирай), помести во вторую временную таблицу (ВТ_ОстаткиПоФирме) Затем таблицу ВТ_ОстаткиНаСкладе соединяй левым соединенм с ВТ_ОстаткиПоФирме по номенклатуре и хар-ке |
|||
26
svsvsv
06.03.17
✎
17:05
|
И почитай книжку про запросы
|
|||
27
igork1966
06.03.17
✎
17:08
|
(23) Ты даже в (21) невнятно объяснил чего тебе нужно.
"Т.е. я хочу левым соединение отобрать все что у меня есть на основном складе" Зачем здесь слово "левым соединением"? "если есть на складе Магазина то просто подставлять" Поток сознания, что означает "просто подставлять" Для того чтобы тебя поняли, нужно четко сформулировать для начале чего тебе надо. Ну и не мешало бы (26) |
|||
28
Tumakota
06.03.17
✎
17:18
|
(25) Итог серовно одинаков получается
ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Характеристика, ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокСклада ПОМЕСТИТЬ ВТ_ОстаткиНаСкладе ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ГДЕ ТоварыНаСкладахОстатки.Склад = &Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Характеристика, ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокМагазина, ТоварыНаСкладахОстатки.Склад.Магазин КАК Магазин ПОМЕСТИТЬ ВТ_ОстаткиПоФирме ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиНаСкладе.Номенклатура, ВТ_ОстаткиНаСкладе.Характеристика, ВТ_ОстаткиНаСкладе.ОстатокСклада, ВТ_ОстаткиПоФирме.ОстатокМагазина, ВТ_ОстаткиПоФирме.Магазин ИЗ ВТ_ОстаткиНаСкладе КАК ВТ_ОстаткиНаСкладе ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПоФирме КАК ВТ_ОстаткиПоФирме ПО ВТ_ОстаткиНаСкладе.Номенклатура = ВТ_ОстаткиПоФирме.Номенклатура И ВТ_ОстаткиНаСкладе.Характеристика = ВТ_ОстаткиПоФирме.Характеристика Даже с временными таблицами |
|||
29
igork1966
06.03.17
✎
17:23
|
(28) два практически одинаковых запроса получающие один тот же остаток, немного разный разрез. Соединение по общей части ключа (набора полей). Чего Ожидал?
|
|||
30
igork1966
06.03.17
✎
17:25
|
(29) + отличие только в "ТоварыНаСкладахОстатки.Склад.Магазин", но тут соединение 1:1.
|
|||
31
igork1966
06.03.17
✎
17:31
|
Почти наверняка Характеристики отличаются.
|
|||
32
nordbox
06.03.17
✎
17:37
|
||||
33
svsvsv
06.03.17
✎
17:57
|
нахуа ТоварыНаСкладахОстатки.Склад.Магазин ?
|
|||
34
svsvsv
06.03.17
✎
17:58
|
мне кажется, серовно не получится ничего
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |