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

¡query inconclusa!

Estas en el tema de ¡query inconclusa! en el foro de Mysql en Foros del Web. Saludos. Escribo porque necesito un pequeño empujocito para lograr mostrar los datos por medio de una Query... El problema es el siguiente... Tengo 2 tablas... ...
  #1 (permalink)  
Antiguo 20/05/2010, 16:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 8 meses
Puntos: 4
Exclamación ¡query inconclusa!

Saludos.

Escribo porque necesito un pequeño empujocito para lograr mostrar los datos por medio de una Query...

El problema es el siguiente...

Tengo 2 tablas... [Catalogo] [Ventas]

[Catalogo] cuenta con las columnas: ID_Cat, Nombre.
[Ventas] cuenta con las columnas: ID_Vta, Empeado, Catalogo, Porcentaje.

[Ventas] contiene el porcentaje de ventas a realizar en relación al ID de [Catalogo]...

Ejemplo:

[Catalogo]
1 - Prod1
2 - Prod2
3 - Prod3
4 - Prod4

[Ventas]
1 - Christian - 1 - 40%
2 - Christian - 3 - 60%
3 - Pedro - 1 - 100%

Ahora en una Query quiero mostrar la lista completa de [Catalogo] pero con los valores de porcentaje correspondiente a [Ventas]

Ejemplo:

[Query: Empleado = Christian]
1 - Prod1 - 40%
2 - Prod2 - Null
3 - Prod3 - 60%
4 - Prod4 - Null

--- --- --- --- --- ---

Ya lo he intentado con LEFT JOIN, condicionando, agrupando, etc... pero nada... lo único que puedo mostrar el el listado de productos relacionados al empleado...
pero los demás no aparecen...

Código MySQL:
Ver original
  1. FROM CATALOGO A
  2. LEFT JOIN VENTAS B ON A.ID_CAT = B.CATALOGO
  3. WHERE B.EMPLEADO = 'CHRISTIAN'

(Tambien existe una tabla de empleados los cuales relaciono con su ID, pero lo posteo de ésta forma para que sea rápido)...

¿Alguna idea de que puedo añadir a mi Query para que me aparescan todos los Productos de [Catalogo]?

Se agradecen sus sugerencias...
  #2 (permalink)  
Antiguo 21/05/2010, 02:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ¡query inconclusa!

Primero busco las ventas de CHRISTIAN

Código MySQL:
Ver original
  1. FROM  VENTAS V
  2. WHERE V.EMPLEADO = 'CHRISTIAN'


Luego lo junto con los productos

Código MySQL:
Ver original
  1. FROM CATALOGO A
  2.                   FROM  VENTAS V
  3.                    WHERE V.EMPLEADO = 'CHRISTIAN') as Sbc
  4. ON A.ID_CAT = Sbc.CATALOGO;


Si?

Si CHRISTIAN vende dos veces el mismo producto te saldrà dos veces...

Si los % varian en el tiempo no sabremos cual seleccionar...

El primer problema se podria solucionar... pero cuando se combina con el segundo no....

Te falta una tabla. O no acabo de entender que es este pordectage.


Quim

Última edición por quimfv; 21/05/2010 a las 04:06
  #3 (permalink)  
Antiguo 24/05/2010, 14:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 8 meses
Puntos: 4
De acuerdo Respuesta: ¡query inconclusa!

Muchas gracias quimfv...

Demonios... sólo era necesaria una pista para desbloquearme... hehehe...

Claro que van en relación al tiempo los registros...
Ése campo es la clave que utilizo para que no se repitan los registros...

El código completo ha quedado de la siguiente manera...

Código MySQL:
Ver original
  1. SELECT C.NOMBRE, IF(V2.PORCENTAJE IS NULL,0,V2.PORCENTAJE)PCT, V2.FECHA
  2. FROM CATALOGO C
  3.   SELECT CATALOGO, PORCENTAJE, FECHA
  4.   FROM VENTAS V
  5.   WHERE (
  6.     SELECT VENTAS.FECHA
  7.     FROM VENTAS
  8.     WHERE VENTAS.CATALOGO = V.CATALOGO
  9.     ORDER BY FECHA DESC
  10.     LIMIT 1
  11.   ) = V.FECHA
  12.   AND EMPLEADO = 'CHRISTIAN'
  13. ) V2
  14. ON V2.CATALOGO = C.ID_CAT
(claro... en lugar del nombre de empleado utilizo su ID...)

Sé que tal vez hay queries mas prácticas (referido al tiempo de ejecución)...

Por ahora es todo...

Muchas gracias y... puede cerrarse el tema...

Nos estamos leyendo



PS. El porcentaje se modifica cada cierto tiempo... de sus ventas totales: x% debe ser de x producto, etc...

Última edición por NA1TM3R; 24/05/2010 a las 14:20

Etiquetas: query
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 16:51.