Имя: Пароль:
1C
 
Запрос из двух регистров.
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) Спасибо. Дополнительного поля не потребовалась. После группировки номенклатура лишняя отпала сама.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан