Cómo mostrar cantidades de dinero en formato de moneda en SQL Server

Un lector me envió recientemente una pregunta en la que quería saber cómo mostrar cantidades de dinero en el formato comúnmente conocido como moneda. (Soy consciente de lo centrado en una región geográfica que esto es, así que intentaré ser más global en mi respuesta a la pregunta del lector).

Utilicemos la base de datos Northwind como nuestro banco de pruebas. Considera la siguiente consulta SQL:

USE Northwind
GO
SELECT
    Quantity,
    Unitprice,
    Quantity * UnitPrice AS Amount
FROM [Order Details]

Esta consulta devuelve un conjunto de resultados que se ve como Listado A (el cual es una lista abreviada). Esto nos da las respuestas correctas pero no en el formato deseado. Podemos alterar la apariencia de las columnas de dinero, pero hay un costo asociado. Por ejemplo, la instrucción en Listado B nos da lo que queremos (es decir, cantidades con formato de moneda).

El lector también quería saber cómo obtener el símbolo de la moneda antes de la cantidad, por ejemplo, $1,320.00. Dada la declaración revisada en Listado B, esto no es difícil de hacer, como puedes ver aquí:

USE Northwind
GO
SELECT
    Quantity,
    '$' + CONVERT(varchar(12), Unitprice, 1) AS Unitprice,
    '$' + CONVERT(varchar(12), Quantity * UnitPrice, 1) AS Amount
FROM [Order Details]

Listado C muestra cómo esto resulta en la visualización deseada. Debo agregar una advertencia adicional que no es evidente. El estilo 1 solo funciona con los tipos de datos money y smallmoney. Por lo tanto, si alguna vez almacenas tus datos en otro tipo, puedes hacer una doble conversión, así:

CONVERT(varchar, CONVERT(money, TuCampo), 1)
Índice de Contenido
  1. ¿Por qué mostrar los valores de dinero en formato de moneda?
  2. ¿Por qué ofrecer código de servidor en lugar de código de cliente?

¿Por qué mostrar los valores de dinero en formato de moneda?

Ahora que hemos creado lo que el lector solicitó, es posible que te preguntes: ¿Por qué querrías mostrar los valores de dinero en formato de moneda?

Cómo instalar y configurar Sybase Adaptive Server Enterprise (ASE) en Linux

Suponiendo que el objetivo de salida sea Query Analyzer, tiene sentido querer que el formato se vea más atractivo. Pero, ¿cuántos usuarios de tu organización realmente usan Query Analyzer para hacer su trabajo? Asumo que menos de cinco. La mayoría de los usuarios optan por aplicaciones escritas en Microsoft Access, .NET, Excel o Delphi, cuyas funciones de formato superan a las de T-SQL por mucho. T-SQL no está diseñado para formatos elaborados, sino para la entrega eficiente de los datos subyacentes.

Sin embargo, es posible que tengas una razón legítima para entregar los datos en este formato; si es así, hay un costo asociado. La columna, tal como se entrega, ya no es de tipo money ni siquiera numérico, por lo que no puedes realizar funciones aritméticas (es decir, promedio, suma, mínimo, máximo, etc.) en ella. Si requieres tales operaciones, deberás agregar la columna real a la instrucción SELECT y luego realizar las operaciones en esa columna.

¿Por qué ofrecer código de servidor en lugar de código de cliente?

T-SQL ofrece soluciones a este problema de visualización, como se ilustra anteriormente, pero ¿son estas las soluciones correctas para tu situación? Al final, la solución a este problema reside en el código del cliente más que en el código SQL.

La mayoría de las veces, tu solución a este problema se encuentra en el código del cliente en lugar del código SQL. Sin embargo, reconozco que hay algunas situaciones en las que es mejor manejarlo en el código de servidor. Por ejemplo, Access, VB y .NET ofrecen la función Format(), que maneja este problema muy bien. Esto no siempre funcionará; por ejemplo, es posible que estés alimentando un archivo de texto en algún programa que espera que las cantidades de dinero se muestren de una sola manera.

Entonces, si necesitas el código de servidor, ahora lo tienes. Pero antes de implementarlo, ten en cuenta el costo descrito anteriormente.

Qué es sudo y por qué deberías usarlo

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Cómo mostrar cantidades de dinero en formato de moneda en SQL Server , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.