Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2007, 07:06
Avatar de arielcasanova
arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
desafío query urgente

Holas. Estoy hace horas tratando de resolver cómo hacer un query, se me han quemado los sesos y no logro descifrarlo...quizá alguien que tenga más luces pueda echarme una mano.
Tengo una tabla, compras, con los siguientes campos
id, id_comercio, id_tarjeta, puntaje, importe, fecha,
en donde se registran las compras de distintos usuarios.
por otro lado, tengo la tabla usuarios, que tiene los datos filiatorios de distintos usuarios y un campo que se llama origen, en el que se consigna en qué comercio fue registrado
finalmente, la tabla comercios tiene los datos del comercio.
La consulta tendría que arrojarme un resultado así
comercio - cantidad de usuarios que compraron entre fecha y fecha - de estos usuarios, cantidad que obtuvieron su tarjeta en ese comercio.

¿Vale? En comercio X, entre el 2001-01-01 y el 2008-01-01 compraron 10 personas, de las cuales 3 se habían registrado en él.
y así con todos los comercios.

he intentando varios inner joins pero ninguno logra darme lo que quiero.
la cosa tendría que ser:
1) select distinct id_comercio from compras
2) select count(distinct compras.id_tarjeta) as tar que haya comprado en cada comercio (¿COMO LE DIGO ESTO A MYSQL?)
3) select count(distinct compras.id_tarjeta) as tar2, compras.id_comercio from compras INNER JOIN usuarios ON usuarios.origen=compras.id_comercio
4) restar el resultado de 3 al resultado de 2, y que eso me dé los que no se registraron en cada comercio de la lista que me devolvería el punto 1.

¿CÓMO CATZO HAGO ESTO? Estoy volviéndome loco.
AYUDA PLIS!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar