Как разыграть вычисленное поле, помноженное на денежное поле? - PullRequest
0 голосов
/ 14 ноября 2018

Я перепробовал все CAST, которые я могу придумать, и строка, которая не будет возвращать значение, является значением 'Percent', умноженным на P.pyd_amount, которое является полем Money.

SELECT O.ord_hdrnumber, O.ord_totalweight, L.lgh_tot_weight, P.pyd_amount,  
CAST(O.ord_totalweight/L.lgh_tot_weight as decimal (10,2)) AS 'Percent', 
'Percent' * P.pyd_amount  as 'Breakdown' FROM Legheader L 
LEFT OUTER JOIN paydetail P ON (L.lgh_number = P.lgh_number) 
LEFT OUTER JOIN orderheader O ON (O.mov_number = L.mov_number) 
WHERE L.lgh_number = '2659'

1 Ответ

0 голосов
/ 14 ноября 2018

Percent - это имя столбца псевдонима, использование которого при расчете недопустимо. Вы должны использовать это выражение непосредственно для расчета

select O.ord_hdrnumber, O.ord_totalweight, L.lgh_tot_weight, P.pyd_amount,  
Cast (O.ord_totalweight/L.lgh_tot_weight as decimal (10,2)) as 'Percent', 
Cast (O.ord_totalweight/L.lgh_tot_weight as decimal (10,2)) * P.pyd_amount  as 'Breakdown' from Legheader L 
Left outer join paydetail P on (L.lgh_number = P.lgh_number) 
left outer join orderheader O on (O.mov_number = L.mov_number) 
where L.lgh_number = '2659'
...