16/07/2008, 03:30
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses Puntos: 300 | |
Respuesta: contar coincidencias ¿Por qué tienes esa estructura en la base? Me refiero a separar con comas en un campo los datos. Ello te obliga a usar arrays en PHP para operaciones que fácilmente lograrías hacer con la base de datos si tuvieras otra estructura pensada para sacar luego datos como estos. En mi opinión, deberías tener tres tablas
vendedor
-----------------
idvendedor (PK)
nombre
opcion
----------
idopcion (PK)
opcion
ventavendedor
-------------------
idventa(PK)
refidvendedor(FK)
refopcion(FK)
Si la opcion "moto" tiene el idopcion 1
Buscarías esto:
SELECT v.vendedor, o.opcion, COUNT(o.idopcion) FROM tabla vendedor v INNER JOIN ventavendedor vv ON v.idvendedor= vv.refidvendedor INNER JOIN opcion o ON vv.refopcion=o.idpocion WHERE vv.refidopcion = 1 GROUP BY v.idvendedor ORDER BY COUNT(o.idopcion) DESC
No lo he probado, pero creo que es eso.
Si no tienes muy avanzada la base, te diría que pensaras en cambiar la estructura. Con arrays y lo que tienes podría hacerse algo usando funciones específicas de PHP, pero yo no lo considero la mejor opción y en este foro no escribimos código PHP.
Si decides no cambiar tu estructura, dilo y te haremos alguna sugerencia PHP en el foro PHP. Pero, como te digo, la mejor opcion es una estructura parecida a esta que te propongo.
Última edición por jurena; 16/07/2008 a las 13:55 |