Get value of math operations SQL SERVER
-
05-10-2020 - |
Question
I have a problem on this query, how do I use the result of the query contained in CostoUnitario
field.
I see better explain, after: ... as CostoUnitario..
I should insert ,CostoUnitario* Quantita
How can I do?
CODE:
SELECT Capitolo.Descrizione,SottoCapitolo.Descrizione,
SottoCapitolo.Immagine,
SottoCapitolo.DescrizioneEstesa,
SottoCapitolo.Quantita,
ROUND(((SottoCapitolo.CostoUnitario)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeMargine)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeUtile)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeSpeseGenerali)),0)
as CostoUnitario
FROM Preventivo inner join Capitolo on Preventivo.IdPreventivo = Capitolo.IdPreventivo inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo order by Capitolo.Descrizione
IMAGE:
Solution
You must repeat last operation and add * Quantita.
SELECT A, B, C, (A + B) AS AB, (A + B) * C AS ABC
SELECT Capitolo.Descrizione,SottoCapitolo.Descrizione,
SottoCapitolo.Immagine,
SottoCapitolo.DescrizioneEstesa,
SottoCapitolo.Quantita,
ROUND(((SottoCapitolo.CostoUnitario)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeMargine)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeUtile)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeSpeseGenerali)),0)
as CostoUnitario,
ROUND(((SottoCapitolo.CostoUnitario)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeMargine)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeUtile)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeSpeseGenerali)),0) * SottoCapitolo.Quantita
FROM Preventivo inner join Capitolo on Preventivo.IdPreventivo = Capitolo.IdPreventivo inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo order by Capitolo.Descrizione
You can avoid it by calculating this values in presentation layer.
OTHER TIPS
Another possible query, if you don't want to write the same line again would be:
select *, CostoUnitario * Quantita
FROM
(
SELECT Capitolo.Descrizione as CapDescrizione,
SottoCapitolo.Descrizione,
SottoCapitolo.Immagine,
SottoCapitolo.DescrizioneEstesa,
SottoCapitolo.Quantita,
ROUND(((SottoCapitolo.CostoUnitario)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeMargine)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeUtile)+(((SottoCapitolo.CostoUnitario)/100)*PercentualeSpeseGenerali)),0)
as CostoUnitario
FROM Preventivo
inner join Capitolo on Preventivo.IdPreventivo = Capitolo.IdPreventivo
inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo
) as Co
order by CapDescrizione
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange