Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

agregar un valor despues de usar convert()

Estas en el tema de agregar un valor despues de usar convert() en el foro de SQL Server en Foros del Web. Hola gente como estan? Necesito una ayuda ssi se puede con este tema si es posible.. Estoy empezando con sql server 2000 y tengo esta ...
  #1 (permalink)  
Antiguo 30/11/2011, 09:00
 
Fecha de Ingreso: julio-2011
Mensajes: 123
Antigüedad: 12 años, 9 meses
Puntos: 0
agregar un valor despues de usar convert()

Hola gente como estan?
Necesito una ayuda ssi se puede con este tema si es posible..
Estoy empezando con sql server 2000 y tengo esta query:

SELECT
'c.nrocompromiso' = CASE WHEN grouping(c.nrocompromiso) = 1 then 00000000 else c.nrocompromiso end,
'm.idcompra' = CASE WHEN grouping(m.idcompra) = 1 then cast('Todos' as varchar(10)) else m.idcompra end,
SUM(m.cantidad * m.valorunitario) AS total
FROM
tb_compra_mercaderias AS m,
tb_compra_compras AS c
WHERE
c.idcompra = m.idcompra
--and
--c.nrocompromiso = 12692
and c.ejercicio = 2011
GROUP by
c.nrocompromiso, m.idcompra with rollup

La consulta funciona pero como ven donde puse los 000000000 en negrita ahi quiero poner texto por ejemplo la palabla Todas el tema que las columnas tienen las tres como tipo de dato int

El el segundo campo cuando quiero mostrar 'm.idcompra' ven que hice un intento de algo pero si lo ejecuto asi me tira este error:

Syntax error converting the varchar value 'Todos' to a column of data type int.

que es lo que les decia del tipo de dato, si me pueden dar una mano estaria muy agradecido.
saludos a todos
  #2 (permalink)  
Antiguo 30/11/2011, 09:58
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: agregar un valor despues de usar convert()

tendrias que hacer algo asi:

CASE WHEN convert(varchar(20),grouping(m.idcompra)) = '1' then 'Todos' else convert(varchar(20),m.idcompra) end

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/12/2011, 08:23
 
Fecha de Ingreso: julio-2011
Mensajes: 123
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: agregar un valor despues de usar convert()

Mil gracias por la respuesta funciona perfecto, solo una cosa para destacar que no resulta como yo pretendia..

busco mostrar solo como texto la pala total cuando corresponda como lo lograste de la forma que me mostraste, pero cuando no corresponda es decir cuando se muestre el m.idcompra necesito que el tipo de dato sea money para que en pantalla me muestre el numero formateado con el signo $ adelante..

probe esto que crei iba a ser la solucion pero no fua asi

CASE WHEN convert(varchar(20),grouping(m.idcompra)) = '1' then 'Todos' else convert(money,m.idcompra) end

como podria lograr esto entonces?
muy agradecido desde ya.
  #4 (permalink)  
Antiguo 01/12/2011, 08:58
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: agregar un valor despues de usar convert()

como comentario..

La columna del result set que arrojara tu consulta puede tener unicamente un tipo, ya sea varchar o numerico(int, money, etc) por lo que lo mejor sera manejar este caso en el lado del cliente, cuando sea diferente de Todos se haga la conversion de tipo de dato correspondiente...


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 02/12/2011, 09:42
 
Fecha de Ingreso: julio-2011
Mensajes: 123
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: agregar un valor despues de usar convert()

ahh pido disculpas entonces, ese es el tema y no lo sabia, pense que por tener el condicional se podia cambiar el tipo de dato de la columna como se requiera segun el condicional..

mil gracias entonces era lo que necesitaba saber.
Saludos

Etiquetas: select, server, sql, usar, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.