You are on page 1of 6

Consultas con campos calculados

 By Trainer SQL in Consultas

Campos calculados en Consultas


Los campos calculados en una consulta son campos que se construyen en
base a los existentes en la tabla.

Los campos calculados siguen cualquiera de los formatos siguientes:

NombreCampoCalculado = Expresión que lo calcula


o
Expresión que lo calcula As ‘Nombre de campo calculado’

Si el nombre del campo calculado incluye espacios se debe encerrar entre


corchetes.

Ejercicios
Como usar campos calculados en consultas SQL
Server
Usando Northwind
use Northwind
go

1. El código del empleado y su nombre completo (el nombre completo no


existe en la tabla)

select E.EmployeeID As ‘Código’,


Empleado = E.LastName + Space(1) + E.FirstName
from Employees As E
go
— Otra forma
select E.EmployeeID As ‘Código’,
E.LastName + Space(1) + E.FirstName As ‘Empleado’
from Employees As E
go

2. Empleado y su edad (en la tabla hay fecha de nacimiento)

select E.EmployeeID As ‘Código’,


E.LastName + Space(1) + E.FirstName As ‘Empleado’,
Edad = Datediff(yy,E.BirthDate,GetDate())
from Employees As E
go
En la instrucción anterior se muestran los dos formatos de como presentar
campos calculados, el campo Empleado primero con la expresión que lo
calcula seguido de As y la Edad con el nombre de campo igualado a la
expresión que lo calcula.
3. Los productos y el valor del Stock (Precio * Stock)

select P.ProductName As ‘Producto’, P.ProductID As ‘Código’,


[Valor del Stock] = P.UnitPrice * P.UnitsInStock,
P.UnitPrice As ‘Precio’, P.UnitsInStock As ‘Stock’
from Products As P
go
4. Productos y las unidades de compra urgente. Existen unidades para
comprar urgente cuando el stock es menor a las unidades en orden

select P.ProductID As ‘Código’,P.ProductName As ‘Producto’,


P.UnitsInStock As ‘Stock’, P.UnitsOnOrder As ‘En Orden’,
[Por comprar] = iif(P.UnitsOnOrder > P.UnitsInStock,P.UnitsOnOrder –
P.UnitsInStock,0)
from Products As P
where P.UnitsOnOrder > P.UnitsInStock
go
5. Las órdenes, el monto total de la misma y el impuesto, suponiedo que
se trate de un 12%.

select O.OrderID As ‘Nº Orden’,


Format(O.OrderDate,’dd/MM/yy’) As ‘Fecha de Orden’,
Format(Sum(D.Quantity * D.UnitPrice),’##,##0.00′) as ‘Monto’,
Impuesto = Format(Sum(D.Quantity * D.UnitPrice)* 0.12,’##,##0.00′)
from Orders As O
join [Order Details] As D on O.OrderID = D.OrderID
Group by O.OrderID, O.OrderDate
go

Se uso la tabla detalle para calcular el monto total de la orden. Ver Joins

Se utilizó agrupamientos. Ver Agrupamientos


Notas
 Puede incluirse la cantidad de campos calculados que se necesite, estos
siempre se calculan en base a los campos existentes en la tabla.
 Es recomendable para optimizar el trabajo de las consultas, incluir en las tablas
los campos calculados que se usan con frecuencia.
 Se recomienda crear vistas para las consultas con campos calculados de uso
frecuente.

You might also like