[ Foro de SQL (y MySQL) ]

Tabla vista con Select Count sobre 2 tablas

19-Mar-2015 01:50
raul soto
2 Respuestas

Necesito crear una vista que muestre las ventas por vendedor por producto y por rango de fechas.

Tengo 2 tablas, pdv_1 y pdv_2, que registran ventas de 4 productos diferentes. Una tabla para cada punto de venta

id | usuario | producto | fecha

1 | juan pe| produc_1 | 02-03-2015
2 | jose ed| produc_2 | 03-03-2015
3 | jose ed| produc_3 | 02-03-2015
4 | juan pe| produc_4 | 02-03-2015

Necesito crear una Vista que muestre el total de ventas por producto, sumando las dos tablas, por usuario y el rango de fechas que seleccione el usuario del sistema.

Debería que dar mas o menos así:

nombre | produc_1 | produc_2 | produc_3 | produc_4 | total |

juan pe | 4 ventas | 7 ventas | 10 ventas | 12 ventas| 43 ventas |
jose ed| 9 ventas | 15 ventas | 16 ventas | 22 ventas| 62 ventas |

Estoy tratando de crear la vista pero me da errores de sintaxis:

 
CREATE OR REPLACE VIEW metas AS 
SELECT user.username FROM user, auth_assignment  
WHERE user.id = auth_assignment.user_id 
AND auth_assignment.item_name = 'Ejecutivo', // Elijo los usuarios que son ejecutivos del sistema de usuarios
 
 (SELECT SUM(T1.T2) total_produc_1 FROM 
 (SELECT count(id) T2 FROM pdv_1
 WHERE producto= "produc_1"
 union ALL SELECT count(id) 
 FROM pdv_2 WHERE producto= "produc_1") T1 ) AS producto_1,
 
 (SELECT SUM(T1.T2) total_produc_2 FROM 
 (SELECT count(id) T2 FROM pdv_1
 WHERE producto= "produc_2"
 union ALL SELECT count(id) 
 FROM pdv_2 WHERE producto= "produc_2") T1 ) AS producto_2,
 
etc...
 



No puedo crear la tabla vista ni asociar los resultados al usuario.

Agradeceré cualquier idea o codigo de ejemplo.

Cordiales Saludos


22-Mar-2015 16:19
Nacho Cabanes (+30)

Primero crea la SELECT que te muestre los datos, y posteriormente, cuando funcione, crea la vista a partir de ella. Te ayudará a identificar los fallos.

En cuanto a cómo hacerla: Para simplificar la consulta, puedes hacer primero una UNION de las dos tablas, de modo que después puedas hacer el correspondiente SUM y GROUP BY. Comienza por hacerlo para un único producto, y, cuando funcione correctamente, lo amplías para mostrar los 4 productos, primero en vertical y finalmente en horizontal. Si lo haces de forma progresiva, podrás ver con más facilidad qué está fallando.


23-Mar-2015 03:48
raul soto

Me queda claro. Gracias.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)