Consulta SQL

Hola, estoy haciendo una consulta que ya funciona y es la siguiente.
TRANSFORM Sum(DetalleVenta.Cantidad) AS Sales
SELECT Cliente.NombreFantasía
FROM Cliente INNER JOIN (Ventas INNER JOIN DetalleVenta ON
Ventas.IdVenta = DetalleVenta.IdVenta) ON Cliente.IdCliente = Ventas.IdCliente
WHERE DatePart('yyyy', [Fecha]) = '" & Año & "'" _
GROUP BY Cliente.NombreFantasía
ORDER BY Cliente.NombreFantasía
PIVOT DatePart('m',Fecha)
Esta me lista todos los meses del año como columnas y como filas c/u de los clientes con sus respectivas compras de cada mes.
El problema es que en las columnas me muestra el dígito del mes, es decir, me muestra 8 si es AGOSTO, 9 si es SEPTIEMBRE, etc.
Lo que yo no puedo lograr es que me muestre en palabras, por ej., donde sea AGOSTO que me muestre AGO, SEPTIEMBRE que sea SEP, y así sucesivamente de acuerdo a lo que liste la
consulta.
Si pueden ayudarme les estaré muy agradecido.
Respuesta
1
yo te aconsejo que tu query lo transformes a un store procedure de manera que lo que te arroje tu query lo atrapes en variables y en particular lo del mes mediante cases obtengas el string que corresponda
case var=1
nvavariable='enero'
case var=2
nvavariable='febrero'
Y así
Al finalizar en tu store procedure regresas todos los valores de las variables pero ya habrás obtenido el string del mes que quieres
si tienes dudad de como es la sintaxis de un store procedure, la ayuda del sqlserver mediatne el index y store procedure es bastante buena.
En caso extremo te puedo dar un ejemplo
Masterlui: creo que entiendo la solución que me das, pero no lo puedo probar ya que el programita utiliza una bd access 97 y aquí sí que no sé si maneja store procedure (creo que no). Si puedes ayudarme te lo agradeceré por que ya no se más que probar.
Gracias.
select 'mes'=
case
when datepart(mm,fechita)=2 and datepart(yyyy,fechita)=2002 then 'febrero'
when datepart(mm,fechita)=3 and datepart(yyyy,fechita)=2002 then 'marzo'
end
From fecha
Crea una bd que se llame fecha con un campo(fechita) de tipo fecha y prueba ese query que te mando. Con eso sacaras lo que quieres.
Otra forma seria que mediante el código de vb hicieras los case, es decir cachar todos los campos del recordset en variables de vb y a la columna que te interesa le aplicas un switch y ya haces la conversión que quieres

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas