Re-Utilizar Campos Calculados

18/07/2007 - 14:58 por Gustavo | Informe spam
Hola:
Trabajando con SQL Server 2005, existe alguna posibilidad de
reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
haciendo algo mal ???

Como no he podido hacer esto me veo obligado a repetir la formula
cuando tengo varios campos calculados en una tabla de facturas x ejemplo:

SubTotal = Total Bruto - Descto
Monto IVA =(Total Bruto - Descto) * PorcenIVA
TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)

Existe alguna otra forma de reutilizar estas formulas ???

Saludos
Atte Gustavo Aquilino
Rcia - Chaco - Argentina

Preguntas similare

Leer las respuestas

#1 Maxi
18/07/2007 - 15:39 | Informe spam
Gustavo, eso no es un campo calculado y me imagino que vos estas usando esto
en los campos de un select verdad? de ser asi deberas repetir la formula.
Ahora si creas un campo calculado en la tabla aho no es necesario repetir la
formula


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Gustavo" escribió en el mensaje
news:
Hola:
Trabajando con SQL Server 2005, existe alguna posibilidad de
reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
haciendo algo mal ???

Como no he podido hacer esto me veo obligado a repetir la formula
cuando tengo varios campos calculados en una tabla de facturas x ejemplo:

SubTotal = Total Bruto - Descto
Monto IVA =(Total Bruto - Descto) * PorcenIVA
TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)

Existe alguna otra forma de reutilizar estas formulas ???

Saludos
Atte Gustavo Aquilino
Rcia - Chaco - Argentina


Respuesta Responder a este mensaje
#2 Alejandro Mesa
18/07/2007 - 15:44 | Informe spam
Hola Gustavo,

No, si lo quieres reusar en la misma lista de columnas. Puedes usar una
tabla derivada o una CTE para refrencias esas columnas en queries posteriores
o niveles externos.

;with cte_1
as
(
select SubTotal = Total Bruto - Descto, PorcenIVA
from dbo.t1
),
cte_2
as
(
select [Monto IVA] = SubTotal * PorcenIVA
from cte_1
),
cte_3
as
(
select TotalFact = SubTotal + [Monto IVA]
from cte_2
)
select * from cte_3
go


AMB

"Gustavo" wrote:

Hola:
Trabajando con SQL Server 2005, existe alguna posibilidad de
reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
haciendo algo mal ???

Como no he podido hacer esto me veo obligado a repetir la formula
cuando tengo varios campos calculados en una tabla de facturas x ejemplo:

SubTotal = Total Bruto - Descto
Monto IVA =(Total Bruto - Descto) * PorcenIVA
TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)

Existe alguna otra forma de reutilizar estas formulas ???

Saludos
Atte Gustavo Aquilino
Rcia - Chaco - Argentina


Respuesta Responder a este mensaje
#3 Maxi
18/07/2007 - 15:48 | Informe spam
Tenes razon Alejandro!! me habia olvidado de nuestras amiggas las CTE :-(


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Alejandro Mesa" escribió en el
mensaje news:
Hola Gustavo,

No, si lo quieres reusar en la misma lista de columnas. Puedes usar una
tabla derivada o una CTE para refrencias esas columnas en queries
posteriores
o niveles externos.

;with cte_1
as
(
select SubTotal = Total Bruto - Descto, PorcenIVA
from dbo.t1
),
cte_2
as
(
select [Monto IVA] = SubTotal * PorcenIVA
from cte_1
),
cte_3
as
(
select TotalFact = SubTotal + [Monto IVA]
from cte_2
)
select * from cte_3
go


AMB

"Gustavo" wrote:

Hola:
Trabajando con SQL Server 2005, existe alguna posibilidad de
reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
haciendo algo mal ???

Como no he podido hacer esto me veo obligado a repetir la formula
cuando tengo varios campos calculados en una tabla de facturas x ejemplo:

SubTotal = Total Bruto - Descto
Monto IVA =(Total Bruto - Descto) * PorcenIVA
TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)

Existe alguna otra forma de reutilizar estas formulas ???

Saludos
Atte Gustavo Aquilino
Rcia - Chaco - Argentina


Respuesta Responder a este mensaje
#4 Gustavo
18/07/2007 - 19:26 | Informe spam
Alejandro:

Bien, gracias. Es para usar en las columnas de una tabla
convencional.
Situando campos calculados en la tabla centralizo la formula que
realiza el calculo. Esto evita repetir la formula en mas de una aplicacion.

Otra solucion posible prodria ser disponer una libreria
compartida que realice el calculo. Verdad ?

Saludos
Atte Gustavo.

"Alejandro Mesa" wrote in message
news:
Hola Gustavo,

No, si lo quieres reusar en la misma lista de columnas. Puedes usar una
tabla derivada o una CTE para refrencias esas columnas en queries
posteriores
o niveles externos.

;with cte_1
as
(
select SubTotal = Total Bruto - Descto, PorcenIVA
from dbo.t1
),
cte_2
as
(
select [Monto IVA] = SubTotal * PorcenIVA
from cte_1
),
cte_3
as
(
select TotalFact = SubTotal + [Monto IVA]
from cte_2
)
select * from cte_3
go


AMB

"Gustavo" wrote:

Hola:
Trabajando con SQL Server 2005, existe alguna posibilidad de
reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
haciendo algo mal ???

Como no he podido hacer esto me veo obligado a repetir la formula
cuando tengo varios campos calculados en una tabla de facturas x ejemplo:

SubTotal = Total Bruto - Descto
Monto IVA =(Total Bruto - Descto) * PorcenIVA
TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)

Existe alguna otra forma de reutilizar estas formulas ???

Saludos
Atte Gustavo Aquilino
Rcia - Chaco - Argentina


Respuesta Responder a este mensaje
#5 Alejandro Mesa
18/07/2007 - 19:48 | Informe spam
Hola Gustavo,

Si te referias a usar columnas calculadas en una tabla, entonces debes tener
en cuenta que la expresion que uses no puede referenciar a otra columna
calculada.


AMB


"Gustavo" wrote:

Alejandro:

Bien, gracias. Es para usar en las columnas de una tabla
convencional.
Situando campos calculados en la tabla centralizo la formula que
realiza el calculo. Esto evita repetir la formula en mas de una aplicacion.

Otra solucion posible prodria ser disponer una libreria
compartida que realice el calculo. Verdad ?

Saludos
Atte Gustavo.

"Alejandro Mesa" wrote in message
news:
> Hola Gustavo,
>
> No, si lo quieres reusar en la misma lista de columnas. Puedes usar una
> tabla derivada o una CTE para refrencias esas columnas en queries
> posteriores
> o niveles externos.
>
> ;with cte_1
> as
> (
> select SubTotal = Total Bruto - Descto, PorcenIVA
> from dbo.t1
> ),
> cte_2
> as
> (
> select [Monto IVA] = SubTotal * PorcenIVA
> from cte_1
> ),
> cte_3
> as
> (
> select TotalFact = SubTotal + [Monto IVA]
> from cte_2
> )
> select * from cte_3
> go
>
>
> AMB
>
> "Gustavo" wrote:
>
>> Hola:
>> Trabajando con SQL Server 2005, existe alguna posibilidad de
>> reutilizar los campos calculados. Lo intente pero no me lo permite, estoy
>> haciendo algo mal ???
>>
>> Como no he podido hacer esto me veo obligado a repetir la formula
>> cuando tengo varios campos calculados en una tabla de facturas x ejemplo:
>>
>> SubTotal = Total Bruto - Descto
>> Monto IVA =(Total Bruto - Descto) * PorcenIVA
>> TotalFact =(Total Bruto - Descto) * PorcenIVA + (Total Bruto - Descto)
>>
>> Existe alguna otra forma de reutilizar estas formulas ???
>>
>> Saludos
>> Atte Gustavo Aquilino
>> Rcia - Chaco - Argentina
>>
>>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida