Пробую написать развернута, не совсем могу понять как брать Приход, Расход, и КонОст. получается в первом селекте, я получаю начальный остаток, а во втором приходи и расход, но у меня почему то нули везде кроме как в начальном остатке.
[code] ТекстЗапроса = " |SELECT //| СпрНоменклатура.descr as НаименованиеНом, //| СпрФирмы.descr as НаименованиеФирмы, | Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура], | Рег.Фирма as [Фирма $Справочник.Фирмы], | Рег.Склад as [Склад $Справочник.Склады], //| SUM(Рег.КоличествоОстаток) as Количество, | SUM(Рег.НачОст) as НачОст, | SUM(Рег.Приход) as Приход, | SUM(Рег.Расход) as Расход, | SUM(Рег.КонОст) as КонОст |FROM | (SELECT | $Р.Номенклатура AS Номенклатура, | $Р.Фирма AS Фирма, | $Р.Склад AS Склад, // | $Р.Количество AS КоличествоОстаток, | $Р.Количество AS НачОст, | 0 AS Приход, | 0 AS Расход, | 0 AS КонОст | FROM | $РегистрИтоги.ОстаткиТМЦ as Р | WHERE | (period = :ПредМесяц~~) //| AND ($Р.Склад=:ВыбСклад) | | UNION ALL | | SELECT | $Р.Номенклатура AS Номенклатура, | $Р.Фирма AS Фирма, | $Р.Склад AS Склад, // | $Р.Количество * (1 - Р.debkred * 2) AS КоличествоОстаток, | 0 AS НачОст, | 0 AS Приход, | 0 AS Расход, | $Р.Количество * (1 - Р.debkred * 2) AS КонОст | FROM | $Регистр.ОстаткиТМЦ AS Р | INNER JOIN | 1sjourn jr ON Р.iddoc = jr.iddoc | AND (jr.date BETWEEN :НачалоМесяца~~ ND :ПредДата~~) | AND ($ФлагРегистра.ОстаткиТМЦ = 1) //| WHERE // | ($Р.Склад=:ВыбСклад) | ) Рег //| LEFT JOIN $Справочник.Номенклатура As СпрНоменклатура ON СпрНоменклатура.ID = Рег.Номенклатура //| LEFT JOIN $Справочник.Фирмы As СпрФирмы ON СпрФирмы.ID = Рег.Фирма |GROUP BY | Номенклатура,Фирма,Склад"; //одиночные параметры cmd.УстановитьТекстовыйПараметр("ПредМесяц",(НачМесяца(НачДата))); cmd.УстановитьТекстовыйПараметр("ПредДата",(НачДата - 1)); cmd.УстановитьТекстовыйПараметр("НачалоМесяца",НачМесяца(НачДата));
cmd.УстановитьТекстовыйПараметр("НачДата",НачДата); cmd.УстановитьТекстовыйПараметр("КонДата",КонДата); //cmd.УстановитьТекстовыйПараметр("выбФирма",выбФирма); cmd.УстановитьТекстовыйПараметр("ВыбСклад",выбСклад); //одиночки ТЗ = cmd.ВыполнитьИнструкцию(ТекстЗапроса); cmd.Закрыть();
[/code]
|