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

Problema con Concat de mysql y recordet de Ado

Estas en el tema de Problema con Concat de mysql y recordet de Ado en el foro de Mysql en Foros del Web. Hola como estan? Bueno tengo la siguiente consulta sql: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select concat ( month ( v.fecha ) , '-' , ...
  #1 (permalink)  
Antiguo 07/08/2011, 21:35
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con Concat de mysql y recordet de Ado

Hola como estan?
Bueno tengo la siguiente consulta sql:

Código MySQL:
Ver original
  1. select concat(month(v.fecha), '-',year(v.fecha)) mes, year(v.fecha) ano, sum(d.cantidad) cantidad
  2. from ventas v inner join det_venta d on d.codventa = v.codventa
  3. where v.estado = 'ALTA' and d.codigo = 66 and v.fecha between '20100101' and '20110901'
  4.  group by month(v.fecha), year(v.fecha)

La ejecuto desde vb6 y muestro sus datos a travez de un recordset de ado.
El dato que me muestra, osea el resultado de "concat(month(v.fecha), '-',year(v.fecha)) mes" es "???", osea solo signos de pregunta.
Cuando intento pasar este dato a crystal, que en definitiva es lo que intento hacer me devuelve: 382D32303131


Como puedo solucionarlo?
Gracias
  #2 (permalink)  
Antiguo 08/08/2011, 05:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Concat de mysql y recordet de Ado

¿Qué tipo de columna es la que usas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/08/2011, 06:16
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con Concat de mysql y recordet de Ado

Lo que hago es seleccionar el mes y el año de v.fecha que es un datetime y los concateno con la función concat para lograr un resultado como por ejemplo asi: 12-2010
  #4 (permalink)  
Antiguo 08/08/2011, 09:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Concat de mysql y recordet de Ado

Las versiones de MyQSL posteriores a 5.0.x suelen hacer que los datos se devuelvan en formato binario, por lo que lo que te pasa puede estar originado allí.
Para evitar eso una forma simple es usar CAST() y formatearlo correctamente.
Además de eso, estás usando una función demasiado complicada, por cuanto para lograr lo que quieres sólo necesitas usar DATE_FORMAT y no hacerlo tan complicado.

Probemos así:

Código MySQL:
Ver original
  1.      CAST(DATE_FORMAT(v.fecha, '%m-%Y') as CHAR(7))  mes,
  2.      YEAR(v.fecha) ano,
  3.      sum(d.cantidad) cantidad
  4. FROM ventas v INNER JOIN det_venta d on d.codventa = v.codventa
  5.      v.estado = 'ALTA'
  6.      AND d.codigo = 66
  7.      AND v.fecha BETWEEN '2010-01-01' AND '2011-09-01'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/08/2011 a las 11:52
  #5 (permalink)  
Antiguo 08/08/2011, 11:35
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con Concat de mysql y recordet de Ado

Solucionado, gracias.

Etiquetas: ado, concat, join, select, sql
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 13:35.