Имя: Пароль:
1C
 
Левое соединение + Вложенный запрос = что-то неправильно
0 pH
 
02.12.04
14:10
Подскажите, пожалуйста: Есть запрос (на основе отчета: анализ ЗаказаПокупателя), внутри него добавил запрос, которые получает остатки. В общем виде выглядит прилизительно так:
ВЫБРАТЬ
….
ОстаткиТоваровКомпанииОстаткиНаряды.Количество КАК РезервНаряды
ИЗ        РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(,&ДатаАнализа,,,ЗаказПокупателя=&ЗаказПокупателя) КАК ЗаказыПокупателейОстаткиИОбороты
….
Левое соединение
(ВЫБРАТЬ
   Остатки.Номенклатура КАК Номенклатура,
   СУММА(Остатки.КоличествоОстаток) КАК Количество,
   Остатки.ХарактеристикаНоменклатуры
ИЗ
   РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Заказ В (&Наряд)) КАК Остатки

СГРУППИРОВАТЬ ПО
   Остатки.Номенклатура,
   Остатки.ХарактеристикаНоменклатуры ) КАК ОстаткиТоваровКомпанииОстаткиНаряды
   ПО   ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпанииОстатки.Номенклатура

В результате: главный запрос неправильно объединяет записи –
Например, выполним отдельно вложенный запрос, получим:

       
Номенклатура                   Количество
Комбайн MOULINEX  A77 4C    3
Вентилятор JIPONIC (Тайв.),    5

Выполним весь запрос, получим:

ТоварТара    Номенклатура    РезервНаряды
Товар                               16
Товар    Комбайн MOULINEX  A77 4C    8
Товар    Комбайн MOULINEX  A77 4C    3
Товар    Комбайн MOULINEX  A77 4C    5
Товар    Вентилятор JIPONIC (Тайв.),    8
Товар    Вентилятор JIPONIC (Тайв.),    3
Товар    Вентилятор JIPONIC (Тайв.),    5


Подскажите что я делаю неправильно, или где прочитать подробнее по этой теме?
1 PVasili
 
02.12.04
14:29
Что показывает основной запрос, без соединения?
Весь запрос в студию...
У тебя по левой таблице есть ИТОГИ, ГРУППИРОВКИ?
2 колодина
 
02.12.04
14:31
похоже надо в каком-то месте дописать РАЗЛИЧНЫЕ, номенклатура похоже несколько раз выбирается.
3 pH
 
02.12.04
14:47
Почему-то большой запрос неправильно объединяет поля:
Как видите в маленькой таблице:
товар1 , остаток1
товар2 , остаток2

в большой таблице
товар1, остаток1
товар1, остаток2      >> неправильно объединяет поля,
товар2, остаток1      >> только не могу понять почему?
товар2, остаток2

Весь запрос (Отчет АнализЗаказаПокупателя):
ВЫБРАТЬ
   ЗаказыПокупателейОстаткиИОбороты.ТоварТара КАК ТоварТара,
   ЗаказыПокупателейОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ЗаказыПокупателейОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХраненияОстатков,
   ЗаказыПокупателейОстаткиИОбороты.КоличествоРасход КАК ОтгруженоОтменено,
   ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОсталосьОтгрузить,
   ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Резерв,
   ОстаткиТоваровКомпанииОстаткиНаряды.КоличествоОстаток КАК РезервНаряды,
   ОстаткиТоваровКомпанииОстаткиСвободные.КоличествоОстаток КАК СвободныйОстаток
ИЗ
   РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(, &ДатаАнализа, , , ЗаказПокупателя = &ЗаказПокупателя) КАК ЗаказыПокупателейОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&ДатаАнализа) КАК ОстаткиТоваровКомпанииОстатки
       ПО ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры И ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ОстаткиТоваровКомпанииОстатки.Заказ И ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпанииОстатки.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаАнализа) КАК ЗаказыПоставщикамОстатки
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ЗаказыПоставщикамОстатки.ЗаказПокупателя И ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&ДатаАнализа, Заказ В (&ПустойЗаказ)) КАК ОстаткиТоваровКомпанииОстаткиСвободные
       ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпанииОстаткиСвободные.Номенклатура И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ОстаткиТоваровКомпанииОстаткиСвободные.ХарактеристикаНоменклатуры
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
           Остатки.Номенклатура КАК Номенклатура,
           СУММА(Остатки.КоличествоОстаток) КАК КоличествоОстаток,
           Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
       ИЗ
           РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Заказ В (&Наряд)) КАК Остатки
       
       СГРУППИРОВАТЬ ПО
           Остатки.Номенклатура,
           Остатки.ХарактеристикаНоменклатуры) КАК ОстаткиТоваровКомпанииОстаткиНаряды
       ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпанииОстатки.Номенклатура

ИТОГИ СУММА(ОтгруженоОтменено), СУММА(ОсталосьОтгрузить), СУММА(Резерв), СУММА(РезервНаряды), СУММА(СвободныйОстаток) ПО
   ТоварТара,
   Номенклатура
4 PVasili
 
02.12.04
14:55
Что и в каком виде ты желаешь увидеть?
5 SnarkHunter
 
02.12.04
14:56
PVasili = PVase ???
6 SnarkHunter
 
02.12.04
14:57
Это ж надо так T-SQL испоганить... Чуть не вытошнило на клавиатуру...
7 PVasili
 
02.12.04
15:00
(5,6)???
Пятница завтра... :(
8 SnarkHunter
 
02.12.04
15:00
(7)Вопрос (5) к тебе. (6) - комментарий по поводу (3)
9 PVasili
 
02.12.04
15:05
1)что есть PVase?
2)Это 1C V8, а не T-SQL
3) Человек что-то хочет получить, вероятно не лучьшим образом...

?
10 pH
 
02.12.04
15:09
это почти стандартный отчет АнализЗаказаПокупателя
почти, потому что хочется получить резервирование по другим документам, которые выписаны на основании текущего заказа.
11 ВРедная
 
02.12.04
15:22
Больше похоже, что объединение где-то не сработало.
Попробуй в консоли запросов по очереди каждую новую таблицу добавлять и смотреть, где вылезет...
12 pH
 
02.12.04
18:47
спасибо всем. Кажется разобрался. все дело было в итогах и группировке
v8: Группировка и итоги - почти то, что надо, только неразвернуто как-то...
13 SnarkHunter
 
02.12.04
21:42
(9)Спасибо, я не знал что это 1С V8...
14 pH
 
03.12.04
09:52
слово "почти" очень вредное: разобрался почти, но есть вопрос.

Если в стандартном отчете АнализЗаказовПокупателей вставить "СГРУППИРОВАТЬ ПО ..." -отчет формируется и все ок,
теперь уберем "СГРУППИРОВАТЬ ПО ..." , (т.е. вернулись к предыдущей форме с "ИТОГИ ... ПО..."), то возникает ошибка: "Поле не входит в группу "ЗаказыПокупателейОстаткиИОбороты.Номенклатура""
Кто-нибудь с этим встречался или я первый? ;)
15 pH
 
03.12.04
09:55
вопрос снят. Опять намудрил. Извиняйте....