|SELECT
|Номенклатура [Номенклатура $Справочник.Номенклатура]
|,SUM(СреднееОстаток)-SUM(СреднееРезерв) СреднееОстаток
|,CASE
| WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 THEN
| Резерв)))*100
| ELSE
| 0
| END ОстатокВПроцентах
|,CASE
| WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 AND SUM(КоличествоПриходОстаток)-SUM(КоличествоПриходРезерв) > 0 THEN
| -SUM(СреднееРезерв)))*100
| WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) <= 0 AND SUM(КоличествоПриходОстаток)-SUM(КоличествоПриходРезерв) > 0 THEN 100
| ELSE 0
| END ПриходВПроцентах
|,CASE
| WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) > 0 AND SUM(КоличествоПервыйПриход)-SUM(КоличествоПриходРезерв) > 0 THEN
| SUM(СреднееРезерв)))*100
| WHEN SUM(СреднееОстаток)-SUM(СреднееРезерв) <= 0 AND SUM(КоличествоПервыйПриход)-SUM(КоличествоПриходРезерв) > 0 THEN 100
| ELSE 0
| END ПервыйПриходВПроцентах
|, MAX(ДатаПервогоПоступления) ДатаПервогоПоступления
|FROM(
|
|SELECT
|Номенклатура.ID Номенклатура
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM
|$Справочник.Номенклатура AS Номенклатура With (NOLOCK)
|GROUP BY
|Номенклатура.ID
|
|UNION ALL
|
|SELECT
|ОстаткиТМЦОстаткиОбороты.Номенклатура Номенклатура
|, Avg(ОстаткиТМЦОстаткиОбороты.КоличествоКонечныйОстаток) СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата,
|:КонДата,
|День,
|Движения,,,
|Номенклатура,) AS ОстаткиТМЦОстаткиОбороты
|GROUP BY ОстаткиТМЦОстаткиОбороты.Номенклатура
|
|UNION ALL
|
|SELECT
|РезервыТМЦОстаткиОбороты.Номенклатура Номенклатура
|, 0 СреднееОстаток
|, Avg(РезервыТМЦОстаткиОбороты.КоличествоКонечныйОстаток) СреднееРезерв
|, 0 Количествостаток
|, 0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстаткиОбороты.РезервыТМЦ(:НачДата,
| :КонДата,
| День,
| Движения,,,
| Номенклатура,) AS РезервыТМЦОстаткиОбороты
|GROUP BY РезервыТМЦОстаткиОбороты.Номенклатура
|
|UNION ALL
|
|SELECT ОстаткиТМЦОстатки.Номенклатура Номенклатура
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, Sum(ОстаткиТМЦОстатки.КоличествоОстаток) КоличествоОстаток
|,0 КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.ОстаткиТМЦ(:КонДата,,,
|Номенклатура,) AS ОстаткиТМЦОстатки
|GROUP BY ОстаткиТМЦОстатки.Номенклатура
|
|UNION ALL
|
|SELECT РезервыТМЦОстатки.Номенклатура Номенклатура
|,0 СреднееОстаток
|,0 СреднееРезерв
|,0 КоличествоОстаток
|, Sum(РезервыТМЦОстатки.КоличествоОстаток) КоличествоРезерв
|, 0 КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.РезервыТМЦ(,,,
|Номенклатура,) AS РезервыТМЦОстатки
|GROUP BY РезервыТМЦОстатки.Номенклатура
|
|UNION ALL
|
|SELECT ЗаказыОстатки.Номенклатура Номенклатура
|,0 СреднееОстаток
|,0 СреднееРезерв
|,0 КоличествоОстаток
|,0 КоличествоРезерв
|, Sum(ЗаказыОстатки.КоличествоПриходОстаток) КоличествоПриходОстаток
|, 0 КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.Заказы(:КонДата,,,
| Номенклатура,
| КоличествоПриход) AS ЗаказыОстатки
|GROUP BY ЗаказыОстатки.Номенклатура
|
|UNION ALL
|
|SELECT ЗаказыЗаявкиОстатки.Номенклатура Номенклатура
|, 0 СреднееОстаток
|, 0 СреднееРезерв
|, 0 КоличествоОстаток
|, 0 КоличествоРезерв
|, 0 СуммаКоличествоПриходОстаток
|, Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) КоличествоПриходРезерв
|, Null ДатаПервогоПоступления
|, 0 КоличествоПервыйПриход
|FROM $РегистрОстатки.ЗаказыЗаявки(:КонДата,,,
| Номенклатура,) AS ЗаказыЗаявкиОстатки
|WHERE (ЗаказыЗаявкиОстатки.КоличествоОстаток > 0)
|GROUP BY ЗаказыЗаявкиОстатки.Номенклатура
|