mds_world,
Так... я тут подумал, .....в общем ЧТО нужно делать я понял точно. Осталось теперь понять КАК это сделать. Вот тут мне ваша помощь и понадобится.
Короче говоря, к исходному запросу приклеиваю:
Left join (Select k.Обозначение, k.Количество From Отгрузка as k Where k.[Дата отгрузки] Between GetperiodS() And GetperiodPo()
And k.Исполнитель=20) as KL On Отгрузка.Обозначение =KL.Обозначение
и добавляю на вывод поле KL.Количество
Получаем:
SELECT Отгрузка.Обозначение, Отгрузка.Завод, Отгрузка.[Дата отгрузки], Отгрузка.[Цена АК], Отгрузка.[Количество]*[Цена АК] AS [Сумма АК],
Отгрузка.Цена AS [Цена МСП], Отгрузка.[Количество]*[Цена] AS [Сумма МСП], Отгрузка.[Цена ВР], Отгрузка.Количество*[Цена ВР] AS [Сумма ВР],
Отгрузка.Исполнитель, Отгрузка.СчФактАК, Отгрузка.СчФактМСП, Отгрузка.СчФактВР, KL.Количество
FROM Отгрузка
Left join (Select k.Обозначение, k.Количество From Отгрузка as k Where k.[Дата отгрузки] Between GetperiodS() And GetperiodPo()
And k.Исполнитель=20) as KL On Отгрузка.Обозначение =KL.Обозначение
WHERE (((Отгрузка.[Дата отгрузки]) Between GetPeriodS() And GetPeriodPo()));
Спотыкаюсь о следующее:
Отдельно запрос работает корректно. Выбирает три позиции и их количество, которые были отгружены Исполнителем=20. Но когда этот запрос приклеен Left Join-ом, то количество в соответствующей колонке появляется НЕ ТОЛЬКО там, где Исполнитель=20, но и во всех других случаях, где совпадает Обозначение, но исполнитель там вовсе другой. ПОЧЕМУ ТАК ПРОИСХОДИТ??
На рисунке показаны результаты запросов. Может быть это прояснит ситуацию..