🧚 ¡Oye! Beekeeper Studio es una GUI de bases de datos rápida, moderna y de código abierto Descarga
14 de febrero de 2024 Por Matthew Rathbone

¡Restar no es solo cosa de números! SQL Server tiene varias funciones y operadores integrados que te ayudan a restar tanto números como fechas. Además, a diferencia de cuando trabajas con lápiz y papel, siempre tenemos que pensar en NULL. Vamos a verlo con algunos ejemplos.

Cómo funcionan las operaciones de resta en SQL Server

Las operaciones de resta en SQL Server suelen usarse en dos situaciones: para hacer cálculos aritméticos con datos numéricos y para manipular valores de fecha y hora. Restar valores te será muy útil cuando necesites generar valores calculados directamente en SQL Server.

Resta básica

Empecemos con una resta sencilla para entender el concepto. Supongamos que tenemos una tabla llamada “Orders” que contiene “TotalAmount” y “DiscountAmount”.

SELECT TotalAmount, DiscountAmount, 
TotalAmount - DiscountAmount AS ActualAmount 
FROM Orders;

En este ejemplo básico, restamos “DiscountAmount” de “TotalAmount” y mostramos el resultado como “ActualAmount”.

Operaciones de resta con intervalos de tiempo

La resta también se usa mucho para calcular la diferencia entre dos fechas y horas. SQL Server tiene varios tipos de fecha y hora: smalldatetime, datetime, datetime2, datetimeoffset. Podemos usar la función DATEDIFF() para restar fechas.

Ejemplo:

SELECT OrderID, OrderDate, 
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed 
FROM Orders;

Este comando calcula y muestra el número de días transcurridos desde que se hizo cada pedido hasta hoy (GETDATE devuelve la fecha de hoy).

Agregar conjuntos de resultados con resta en SQL Server

Agregar conjuntos de resultados usando restas también es muy común en SQL Server. Por ejemplo, podrías necesitar sumar las ventas totales de un periodo y restarles el total de descuentos otorgados en ese mismo periodo.

Ejemplo:

SELECT 
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) - 
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales

El comando anterior muestra las ventas netas del año 2022 restando el total de descuentos al total de ventas.

Manejo de NULL

En SQL Server, restar de NULL devuelve un valor NULL. Si prefieres tratar NULL igual que 0, es importante manejar estos casos para evitar NULL inesperados en tus resultados. Esto no siempre es lo correcto, así que actúa con criterio.

SELECT OrderID, 
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount 
FROM Orders;

Ahora eres un experto en restas

Hay otras formas de restar valores de manera efectiva en SQL Server, así que sigue experimentando con estos comandos y explora más por tu cuenta. Cada consulta que construyas te acercará un paso más a dominar SQL Server. ¡Felices consultas!

Este artículo está escrito pensando en SQL Server. Por eso, todos los comandos y explicaciones se refieren a SQL Server. Para saber cómo funcionan estos comandos en otros motores de bases de datos, consulta la documentación oficial de cada uno.

Beekeeper Studio es un cliente de bases de datos gratuito y de código abierto

La mejor herramienta de consultas y edición de SQL que he usado. Tiene todo lo que necesito para administrar mi base de datos. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio es rápido, intuitivo y fácil de usar. Es compatible con muchísimas bases de datos y funciona de maravilla en Windows, Mac y Linux.

La versión de Beekeeper para Linux tiene el 100% de las funciones, sin recortes ni concesiones.

Lo que dicen los usuarios de Beekeeper Studio

★★★★★
"Beekeeper Studio reemplazó por completo mi antiguo flujo de trabajo con SQL. Es rápido, intuitivo y hace que trabajar con bases de datos vuelva a ser agradable."
— Alex K., desarrollador de bases de datos
★★★★★
"He probado muchas GUI de bases de datos, pero Beekeeper logra el equilibrio perfecto entre funciones y simplicidad. Simplemente funciona."
— Sarah M., ingeniera full stack

¿Listo para mejorar tu flujo de trabajo con SQL?

download Descarga gratis