ОФФ: вчера вечером дома, на модеме я начал писать ответ в эту тему, просидев минут 20, долбая клавишами, нажал кнопку "Отправить" и... О, Ужас!!! модем отвалился, а Internet Explorer злорадно сказал, что мол невозможно отобразить страницу... все, что накропал погибло...

я, поматерив всех геев и гейтцев, пошел спать...
итак, для начала - что ты хочешь выяснить этим запросом? Я так понял - тебе нужно увидеть соответствие Количества Товара-ГТД в разрезе счетов-фактур и накладных двумя запросами: по Фактурам и по Регистру (фактически оприходовано). Если это так, то это все таки - 2 запроса, их можно попытаться
соединить так, как пробовал ты, но по опыту знаю, запрос, где есть слово
DISTINCT и требуются количественные показатели до добра не доводит - значит будем
объединять! Например так:
ТекстЗапроса = "
|SELECT
| Подзапрос.Товар as [Товар $Справочник.Номенклатура],
| Подзапрос.ГТД as [ГТД $Справочник.ГТД],
| Подзапрос.Фактура as [СамДокРСчф $Документ.РегистрацияСчета_Фактуры],
| Подзапрос.Накладная as [СамДокОснования $Документ.Накладная],
| SUM(Подзапрос.КоличествоСчФ) as КолДок,
| SUM(Подзапрос.КоличествоРег) as РАсход
|FROM (
| SELECT
| SUBSTRING($ДокРегСчФ_с.Товар,7,9) AS Товар,
| $ДокРегСчФ_с.ГТД AS ГТД,
| ДокРегСчФ_с.IdDoc AS Фактура,
| RIGHT($ДокРегСчФ.ДокументОснование,9) AS Накладная,
| ($ДокРегСчФ_с.Количество * $ДокРегСчФ_с.Коэффициент) AS КоличествоСчФ,
| 0 AS КоличествоРег
| FROM $ДокументСтроки.РегистрацияСчета_Фактуры as ДокРегСчФ_с
| INNER JOIN $Документ.РегистрацияСчета_Фактуры as ДокРегСчФ on (ДокРегСчФ.IdDoc = ДокРегСчФ_с.IdDoc)
|
| UNION ALL
|
| SELECT
| $Рег_ПартииТоваров.Товар AS Товар,
| $Рег_ПартииТоваров.ГТД AS ГТД,
| ДокРегСчФ.IdDoc AS Фактура,
| Рег_ПартииТоваров.IdDoc AS Накладная,
| 0 AS КоличествоСчФ,
| $Рег_ПартииТоваров.ОстатокТовара AS КоличествоРег
| FROM $Регистр.ПартииТоваров as Рег_ПартииТоваров (NOLOCK)
| LEFT JOIN $Документ.РегистрацияСчета_Фактуры as ДокРегСчФ on (Рег_ПартииТоваров.IdDoc = RIGHT($ДокРегСчФ.ДокументОснование,9))
| ) AS Подзапрос
|GROUP BY
| Подзапрос.Товар,
| Подзапрос.ГТД,
| Подзапрос.Фактура,
| Подзапрос.Накладная
| ";
Можно и по-другому совсем написать, но мне кажется, что нужно именно
объединять, так как соединение
многие ко многим (ведь здесь табличные части) может приводить к дублированию количества, IMHO
PS так и не разобрался, как правильно табуляцией выравнивать код - в 1Се все нормально, на форуме - лесенка-чудесенка...