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

Count para 4 tablas

Estas en el tema de Count para 4 tablas en el foro de Bases de Datos General en Foros del Web. Debo exportar a excel un reporte con rango de fechas que muestre el numero total de ventas por forma de pago por vendedor. Algo como ...
  #1 (permalink)  
Antiguo 17/03/2015, 20:51
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Count para 4 tablas

Debo exportar a excel un reporte con rango de fechas que muestre el numero total de ventas por forma de pago por vendedor.

Algo como esto:

user_id - Efectivo - Credito - Cheque - Tarjeta

1 ---- 50 ---- 45 ---- 10 ---- 22

2 ---- 38 ---- 22 ---- 19 ---- 54

3 ---- 59 ---- 31 ---- 22 ---- 16

El problema es que debo recorrer 4 tablas que registran las ventas (son servicios) buscando por tipoVenta y user_id

Estoy agotado y no se como enfocarlo. Agradecería sugerencias, ideas. etc.

Saludos.
  #2 (permalink)  
Antiguo 18/03/2015, 07:53
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: Count para 4 tablas

que manejador de bases de datos usas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 18/03/2015, 08:40
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Trabajo con php y Mysql con Yii2
  #4 (permalink)  
Antiguo 18/03/2015, 08:57
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: Count para 4 tablas

y porque no haces primero el query con las 4 tablas y despues ya lo exportas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 18/03/2015, 11:11
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Debo cargar un gridview con los rangos de fechas de la consulta que solicite el usuario.
y de ahí exportar. Mi duda es cual es la mejor forma de hacerlo.
Crear una vista con las columnas que necesito y hacer las operaciones matematicas es lo que me cuesta. Ej:

Select Count * from lavado Where tipoPago = tarjeta And user_id = 1 y eso hacerlo en cuatro tablas para conseguir el total de ventas con tarjeta del user_id 1. Son 22 user_id
4 servicios (lavado, planchado, etc).

Entonces la tabla debe quedar con:

Nombre - tarjeta - Cheque - Efectivo - credito - total - proyectado - meta - % alcanzado

por rango de fechas. Es lo ultimo que me falta entregar y necesito un ejemplo claro por favor de la consulta Select Count contra las cuatro tablas, o al menos dos.

Gracias
  #6 (permalink)  
Antiguo 18/03/2015, 11:25
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: Count para 4 tablas

si pones un ejemplo de las 4 tablas, o de la estructura de las mismas se te podria ayudar mejor, lo que veo es que ocupas algo como esto:


Código SQL:
Ver original
  1. SELECT * FROM tabla1 AS t1
  2. LEFT JOIN tabla2 AS t2 ON (t1.id=tr2.id)
  3. LEFT JOIN tabla3 AS t3 ON (t2.id=t3.id)
  4. WHERE t1.id=10
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 18/03/2015, 12:39
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Lo que puedo hacer con dos tablas es esto:

Código SQL:
Ver original
  1. SELECT SUM(T1.T2) total_tarjeta FROM
  2.  (SELECT COUNT(id) T2 FROM lavados
  3.  WHERE tipoVenta = "Tarjeta"
  4.  UNION ALL SELECT COUNT(id)
  5.  FROM planchado WHERE tipoVenta = "Tarjeta") T1
Con eso sumo las ventas con tarjeta de dos servicios, me falta también filtrar por usuario.

Saludos

Última edición por gnzsoloyo; 18/03/2015 a las 12:45
  #8 (permalink)  
Antiguo 18/03/2015, 12:41
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: Count para 4 tablas

un ejemplo de tus datos ayudaria mejor.......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 18/03/2015, 13:50
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Trataré de ser lo mas claro posible.
Las tablas son casi iguales registran entre otros datos:

-id
-user_id
-tipoVenta
-voucher
-valor
- rut cliente
-username
-created_at
-updated_at

Y otros campos sin mayor importancia.

Presentar en una tabla temporal o en una vista, la cantidad de ventas por usuario por cada forma de pago.

La informacion se debería mostrar en 7 columnas:

-> nombre usuario
-> cantidad ventas tarjeta
-> cantidad ventas credito
-> cantidad ventas efectivo
-> cantidad ventas cheque
-> cantidad total ventas
-> proyeccion mes (promedio diario x 30)
- > meta del mes (dato proporcionado por el cliente)
- > % exito (ventas v/s meta)

Mostrar esto por mes o por rango de fecha ingresada por el cliente.


Cada tabla de venta de servicios entrega un report por fechas en formato excel que está trabajando perfectamente. El "poncho" lo tengo con este report.

Saludos.
  #10 (permalink)  
Antiguo 18/03/2015, 13: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: Count para 4 tablas

es un query sencillo lo que pides, pero como no tengo un "ejemplo de tus datos" nada mas estariamos adivinando cual seria el mejor aproach para tu query
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 18/03/2015, 15:04
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Que información necesita? Con gusto se la entrego, traté de esquematizar la tabla para que sirva para todos. Ademas de la estructura de la tabla que mas puedo agregar?

Mysql, innodb, sin relaciones entre tablas.

Cordiales saludos
  #12 (permalink)  
Antiguo 18/03/2015, 15:26
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: Count para 4 tablas

ejemplo de tus datos algo como esto:

user_id - Efectivo - Credito - Cheque - Tarjeta

1 ---- 50 ---- 45 ---- 10 ---- 22

2 ---- 38 ---- 22 ---- 19 ---- 54

3 ---- 59 ---- 31 ---- 22 ---- 16

pero eso es el resultado que buscas, cual es la fuente, no ocupo que pongas toda la tabla con 2 registros de cada tabla implicada es mas que suficiente :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 18/03/2015, 16:40
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Count para 4 tablas

Ok
Tabla que registra las ventas de lavados tb_lavados:

id|user_id|tipoVenta|voucher|monto|rut cliente |username|created_at | updated_at|
1 | 2 |Tarjeta | 1245 |12000|9021178-1|J perez |1426203829|1426203829|
2 | 5 |Cheque | null |32000|8456178-1|C araya |1426203759|1426203759|
3 | 3 |Tarjeta | 2247 |27000|4138489-9|J perez |1426203829|1426203829|

Esta es la información comun de las 4 tablas. otras guardan, teléfono, email, modelo, color, etc.

Saludos
  #14 (permalink)  
Antiguo 19/03/2015, 15:52
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Count para 4 tablas

Cita:
Iniciado por domenor Ver Mensaje
Ok
Tabla que registra las ventas de lavados tb_lavados:

id|user_id|tipoVenta|voucher|monto|rut cliente |username|created_at | updated_at|
1 | 2 |Tarjeta | 1245 |12000|9021178-1|J perez |1426203829|1426203829|
2 | 5 |Cheque | null |32000|8456178-1|C araya |1426203759|1426203759|
3 | 3 |Tarjeta | 2247 |27000|4138489-9|J perez |1426203829|1426203829|

Esta es la información comun de las 4 tablas. otras guardan, teléfono, email, modelo, color, etc.

Saludos
Un pivot dinamico te ayudaria mucho para no hacer tu query dependiente.

http://stackoverflow.com/questions/1...ynamic-columns

o tambien un query usando , case when y sum... pero la hará estatica.
  #15 (permalink)  
Antiguo 19/03/2015, 16:04
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: Count para 4 tablas

un pivote para esa clase de queries?? estas seguro??? y porque estatico???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #16 (permalink)  
Antiguo 20/03/2015, 07:37
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Count para 4 tablas

Cita:
Iniciado por Libras Ver Mensaje
un pivote para esa clase de queries?? estas seguro??? y porque estatico???
Bueno, creo que le ayudaría ya que el tipo de Tarjeta podría aumentar o variar.. con el pivot dinámico se olvidará de cambiar la query, ya que siempre tomará datos de la misma bd.

Con lo otro, siempre dependerá de el cambiar esos datos o actualizar las querys. Supongo que si es para un sistema no quiere que sea estatico :D

Bueno es lo que pienso xd

Etiquetas: mysql
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 03:58.