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

Como dejar los resultados en columnas y no filas (sub consultas)

Estas en el tema de Como dejar los resultados en columnas y no filas (sub consultas) en el foro de Mysql en Foros del Web. Estimados, estoy con un tema que no manejo mucho, quiero por medio de una sola query obtener el total de ventas del mes actual hasta ...
  #1 (permalink)  
Antiguo 10/05/2013, 16:44
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Como dejar los resultados en columnas y no filas (sub consultas)

Estimados,

estoy con un tema que no manejo mucho, quiero por medio de una sola query obtener el total de ventas del mes actual hasta el dia en curso y quiero obtener el mismo valor para mes anterior.

Ej.

hoy estamos a 10 marzo y llevo 100 ventas, entonces quiero saber cuantas ventas tenia del 01 de abril hasta el 10 de abril.

para eso tengo la siguiente consulta:

Código MySQL:
Ver original
  1.        SUM(value)
  2.        FROM data
  3. ) as mes_actual,
  4.        SUM(value)
  5.        FROM data
  6. ) as mes_pasado
  7.  

pero obtengo esta salida.

mes_actual | mes_pasado
XXXXXX | XXXXXX


y lo ideal seria obtener algo asi

Mes
XXXXX <--- valor del mes acual
XXXXX <--- valor del mes anterior


¿Es posible hacer esto?, me podrian ayudar.


Gracias :)
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #2 (permalink)  
Antiguo 11/05/2013, 03:00
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Como dejar los resultados en columnas y no filas (sub consultas)

Consulta la sintaxis de la sentencia Union. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 11/05/2013, 06:01
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, 5 meses
Puntos: 2658
Respuesta: Como dejar los resultados en columnas y no filas (sub consultas)

Cita:
y lo ideal seria obtener algo asi

Mes
XXXXX <--- valor del mes acual
XXXXX <--- valor del mes anterior


¿Es posible hacer esto?
Si, es posible, y francamente estás haciendo en el primer caso una consulta demasiado complicada, ineficiente, usando funciones más complejas de lo necesarias.


Código MySQL:
Ver original
  1.     DATE_FORMAT(`date`, '%m/%Y') Mes,
  2.         SUM(`value`) TotalDelMes
  3.     `data`
  4.     YEAR(`date`) = YEAR(CURDATE())
  5.     AND MONTH(`date`) BETWEEN (MONTH(`date`)-1) AND MONTH(`date`)
  6. GROUP BY YEAR(`date`), MONTH(`date`);

Por otro lado, te recomiendo no usar denominaciones en inglés para los campos, porque es altamente probable (como tal vez ya lo hayas descubierto), que te topes con palabras reservadas, las que pueden generar errores sintácticos indetectables.
Que las puedas "gestionar" con acentos graves, no es suficiente. Un sólo olvido, y adiós consulta.

Incluso cuando los angloparlantes crean ese tipo de columnas, no suelen ponerles "date", "day", "datetime, "int", "value", "set" y cosas así, porque saben que es una metida de pata.
Las buenas prácticas recomiendan ponerle a cada columna propia de una tabla (excluyendo las usadas como FK), un prefijo que indique a qué tabla pertenece. De ese modo no se generan nombres conflictivos, y además siempre sabrás qué columna de qué tabla estás usando....
Tenlo en cuenta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 12/05/2013, 14:35
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: Como dejar los resultados en columnas y no filas (sub consultas)

Estimado,

muchaaaas gracias! la verdad muchas gracias por la query y por tu recomendacion.

Saludos! :)
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Etiquetas: columnas, dejar, filas, resultados, select
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 14:11.