![]() |
![]() |
|
Запрос из двух регистров. | ☑ | ||
---|---|---|---|---|
0
Смешной 1С
12.08.10
✎
08:23
|
Проблемка с запросом.
Необходимо выбрать данные по складам из двух регистров. В первом есть данные о 4 складах: 1, 2, 3, 4, Во втором о 3 складах, один из них не присутствует в первом: 3, 4, 5. Запросом нужно получить вывод: 1 - Количество 2 - Количество 3 - Количество из первого регистра 4 - Количество из первого регистра 5 - Количество Как их соединить в одно поле не соображу... ВЫБРАТЬ РАЗЛИЧНЫЕ РегТоварыНаСкладах.Номенклатура КАК Номенклатура, РегТоварыНаСкладах.Склад КАК Склад, РегТоварыНаСкладах.КоличествоОстаток КАК Количество, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура КАК НоменклатураО, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Склад КАК СкладО, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Количество КАК КоличествоО ИЗ РегистрСведений.ОстаткиНоменклатурыДляВыгрузкиНаСайт КАК ОстаткиНоменклатурыДляВыгрузкиНаСайт РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета, ) КАК РегТоварыНаСкладах ГДЕ РегТоварыНаСкладах.Номенклатура = ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура В таком виде он в разные колонки выгружает |
|||
1
AndrewKiev
12.08.10
✎
08:25
|
объедени два запроса - в первом выбери с одного регистра, потом ОБЪЕДИНИТЬ ВСЕ (ОБЪЕДИНИТЬ) и снова ВЫБРАТЬ, но уже со втрого регистра
|
|||
2
Смешной 1С
12.08.10
✎
08:32
|
(1) Спасибо!
|
|||
3
Смешной 1С
12.08.10
✎
09:45
|
(1)
Я сделал так, все работает. Но результат такой: 1 - 3 шт 1 - 2 шт 2 - 3 шт 2 - 4 шт 3 - 3 шт 3 - 6 шт 4 - 3 шт 4 - 7 шт 5 - 3 шт А как сделать, чтобы выбирал все из первого, и тех которых нет из второго? 1 - 3 шт 2 - 3 шт 3 - 3 шт 4 - 3 шт 5 - 3 шт |
|||
4
1C-Nick
12.08.10
✎
10:12
|
СГРУППИРОВАТЬ
|
|||
5
Смешной 1С
12.08.10
✎
11:06
|
(4) Мне количество важно. нужно то количество которое есть в первом и остальные из второго
|
|||
6
1C-Nick
12.08.10
✎
11:15
|
как вариант
во втором запросе сделать соединение с таблицей первого и в условие связи добавить ТаблицаПервогоРегиста.Количество ЕСТЬ NULL |
|||
7
1C-Nick
12.08.10
✎
11:15
|
приведи запрос - так легче будет
|
|||
8
Смешной 1С
12.08.10
✎
11:16
|
(7)
Вот запрос с объединением: ВЫБРАТЬ РегТоварыНаСкладах.Номенклатура КАК Номенклатура, РегТоварыНаСкладах.Склад КАК Склад, РегТоварыНаСкладах.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета, ) КАК РегТоварыНаСкладах ОБЪЕДИНИТЬ ВЫБРАТЬ ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Склад, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Количество ИЗ РегистрСведений.ОстаткиНоменклатурыДляВыгрузкиНаСайт КАК ОстаткиНоменклатурыДляВыгрузкиНаСайт |
|||
9
1C-Nick
12.08.10
✎
11:25
|
что-то типа такого
ВЫБРАТЬ РегТоварыНаСкладах.Номенклатура КАК Номенклатура, РегТоварыНаСкладах.Склад КАК Склад, РегТоварыНаСкладах.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета, ) КАК РегТоварыНаСкладах ОБЪЕДИНИТЬ ВЫБРАТЬ ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Склад, ВЫБОР КОГДА РегТоварыНаСкладах.Количество ЕСТЬ NULL ТОГДА ОстаткиНоменклатурыДляВыгрузкиНаСайт.Количество ИНАЧЕ 0 КОНЕЦ ИЗ РегистрСведений.ОстаткиНоменклатурыДляВыгрузкиНаСайт КАК ОстаткиНоменклатурыДляВыгрузкиНаСайт ПРАВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета, ) КАК РегТоварыНаСкладах ПО ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура = РегТоварыНаСкладах.Номенклатура И ОстаткиНоменклатурыДляВыгрузкиНаСайт.Склад = РегТоварыНаСкладах.Склад |
|||
10
1C-Nick
12.08.10
✎
11:26
|
тьфу, ЛЕВОЕ соединение
|
|||
11
Смешной 1С
12.08.10
✎
11:34
|
(9) Не, так то же самое только количество стоит 0, т.е
1 - 3 шт 1 - 0 шт 2 - 3 шт 2 - 0 шт 3 - 3 шт 3 - 0 шт 4 - 3 шт 4 - 0 шт 5 - 3 шт еще и номенклатура вся, по которой записи во втором регистре. А надо чтоб вообще не было записей |
|||
12
1C-Nick
12.08.10
✎
11:49
|
ну, так теперь засунь это все еще в один вложенный запрос, и оттуда бери с группиировкой по складу, записи схлопнуться, 3+0 даст 3. что и нужно.
а по поводу номенклатуры можно сделать так: доавбить в запрос еще один параметр ВЫБРАТЬ РегТоварыНаСкладах.Номенклатура КАК Номенклатура, РегТоварыНаСкладах.Склад КАК Склад, РегТоварыНаСкладах.КоличествоОстаток КАК Количество 1 КАК ПервыйЗапрос ... ОБЪЕДИНИТЬ ВЫБРАТЬ ОстаткиНоменклатурыДляВыгрузкиНаСайт.Номенклатура, ОстаткиНоменклатурыДляВыгрузкиНаСайт.Склад, ВЫБОР КОГДА РегТоварыНаСкладах.Количество ЕСТЬ NULL ТОГДА ОстаткиНоменклатурыДляВыгрузкиНаСайт.Количество, 0 и в запросе выбирать где не равно 0 |
|||
13
Смешной 1С
12.08.10
✎
12:02
|
(12) Спасибо. Дополнительного поля не потребовалась. После группировки номенклатура лишняя отпала сама.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |