понедельник, 6 января 2014 г.

Округление всегда в большую сторону в запросе

Запрос для пересчета количества заказываемого товара в большую сторону, с учетом количества товара содержащимся в одной упаковке.

ВЫБРАТЬ
   
ЗаказПоставщикуТовары.Номенклатура,
   
ЗаказПоставщикуТовары.Количество,
   
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК ЕдиницаХраненияОстатковКоэффициент,
   
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЕдиницаДляОтчетовКоэффициент,
   
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ДоляВУпаковке,
   
ЗаказПоставщикуТовары.Количество * (ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоУпаковок
ПОМЕСТИТЬ втЗаказПоставщику
ИЗ
   
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
   
ЗаказПоставщикуТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   
втЗаказПоставщику.Номенклатура,
   
втЗаказПоставщику.Количество,
   
втЗаказПоставщику.ЕдиницаХраненияОстатковКоэффициент,
   
втЗаказПоставщику.ЕдиницаДляОтчетовКоэффициент,
   
втЗаказПоставщику.ДоляВУпаковке,
   
втЗаказПоставщику.КоличествоУпаковок,
   
ВЫРАЗИТЬ(втЗаказПоставщику.КоличествоУпаковок - 0.5 КАК ЧИСЛО(10, 0)) КАК ЧислоЦелыхЧастей,
   
втЗаказПоставщику.Количество - втЗаказПоставщику.ЕдиницаДляОтчетовКоэффициент * (ВЫРАЗИТЬ(втЗаказПоставщику.КоличествоУпаковок - 0.5 КАК ЧИСЛО(10, 0))) КАК ОстатокЦелого
ПОМЕСТИТЬ втЗаказПоставщикуУпаковка
ИЗ
   
втЗаказПоставщику КАК втЗаказПоставщику
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   
втЗаказПоставщикуУпаковка.Номенклатура,
   
втЗаказПоставщикуУпаковка.Количество,
   
втЗаказПоставщикуУпаковка.ЕдиницаХраненияОстатковКоэффициент,
   
втЗаказПоставщикуУпаковка.ЕдиницаДляОтчетовКоэффициент,
   
втЗаказПоставщикуУпаковка.ДоляВУпаковке,
   
втЗаказПоставщикуУпаковка.КоличествоУпаковок,
   
втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей,
   
втЗаказПоставщикуУпаковка.ОстатокЦелого,
   
ВЫБОР
        КОГДА
втЗаказПоставщикуУпаковка.ОстатокЦелого = 0
           
ТОГДА втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей
        ИНАЧЕ втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей + 1
   
КОНЕЦ * втЗаказПоставщикуУпаковка.ЕдиницаДляОтчетовКоэффициент КАК КоличествоСУчетомУпаковки
ИЗ
   
втЗаказПоставщикуУпаковка КАК втЗаказПоставщикуУпаковка



Добавить комментарий

Комментариев нет :

Отправить комментарий