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

sacar más de un registro coincidente

Estas en el tema de sacar más de un registro coincidente en el foro de Mysql en Foros del Web. Buenas, Quiero hacer una consulta que no me acaba de salir. Tengo dos tablas, una de artículos y otra de referencias de mayorista, la tabla ...
  #1 (permalink)  
Antiguo 03/04/2008, 07:25
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
sacar más de un registro coincidente

Buenas,

Quiero hacer una consulta que no me acaba de salir.

Tengo dos tablas, una de artículos y otra de referencias de mayorista, la tabla de artículos es así:

id --> Autoincrement
sku --> char(120)

La tabla de referencias de mayorista es así:

id --> Autoincrement
sku --> char(120)
mayorista --> char(20)

En la tabla de referencias puede que se repita el Sku en diferentes mayoristas, pero en la de artículos tan solo habrá uno, lo que quiero es poder sacar tan solo los registros donde el mismo sku se repita para más de un mayorista, es decir que dos mayoristas tengan el mismo sku.

Se me ha ocurrido esto, pero no funciona:

Cita:
Select Count(id) As Total, mayorista, pvd, stock From articulos_sincro Where pn='123456' And id>2 Group By id;
Lo veo, sencillo pero no sé como hacerlo, la idea es que para que la consulta devuelva algo, deberían de haber como mínimo dos mayoristas con el mismo sku.

A ver si alguien me ilumina un poco.

Gracias!
  #2 (permalink)  
Antiguo 03/04/2008, 08:32
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Re: sacar más de un registro coincidente

intenta con esto:

SELECT sku from M1 mayorista, M2 mayorista WHERE (M1.sku = M2.sku AND M1.id != M2.id)

intentalo refenciandolos así, te funcionará dependiendo de la versión de MySQL que tengas.

Adeu
  #3 (permalink)  
Antiguo 03/04/2008, 10:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: sacar más de un registro coincidente

y tal vez también esto:
SELECT sku, count (distinct mayorista) as NUMEROMAYORISTAS, GROUP_CONCAT(mayorista) AS mayoristas FROM `articulossincro` group by sku HAVING count(sku) > 1 AND count (distinct mayorista) > 1
  #4 (permalink)  
Antiguo 03/04/2008, 10:33
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Re: sacar más de un registro coincidente

Buenas!

Tras darle muchas vueltas, al final saqué la instrucción un poco más complicada de lo que quería quizás pero salió:

Cita:
SELECT articulos_sincro.*, SubQuery.Repeticiones FROM articulos_sincro INNER JOIN (SELECT COUNT(*) AS Repeticiones, pn FROM articulos_sincro GROUP BY pn) AS SubQuery ON articulos_sincro.pn = SubQuery.pn WHERE SubQuery.Repeticiones > 1 And articulos_sincro.pn='123456' Order By pvd ASC;
Muchas gracias a todos por su ayuda!
  #5 (permalink)  
Antiguo 04/04/2008, 10:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: sacar más de un registro coincidente

Si las cosas son como dices, la vida es mas sencilla

Código:
SELECT mayoristas.sku, Count(*) AS Numero
FROM mayoristas
GROUP BY mayoristas.sku
HAVING Count(*)>1;
Pero si no nos dices donde tienes el precio y otros campos que quieres sacar...

Quim
  #6 (permalink)  
Antiguo 04/04/2008, 11:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: sacar más de un registro coincidente

quimfv,
también yo pensé en esa solución, pero entendí que debían de ser dos o más mayoristas distintos.
De ahí la solución que propuse.
  #7 (permalink)  
Antiguo 05/04/2008, 07:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: sacar más de un registro coincidente

Cita:
Iniciado por pempas Ver Mensaje
...
En la tabla de referencias puede que se repita el Sku en diferentes mayoristas, ...
Entiendo que no. No?

Quim
  #8 (permalink)  
Antiguo 05/04/2008, 08:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: sacar más de un registro coincidente

Quimfv,
tal vez tengas razón y si eso es así la propuesta que hiciste es la más recomendable y la que debería aprovechar pempas, en lugar de la compleja con subconsultas que ha empleado, pero eso deberá aclararlo pempas y luego, si lo desea, aprovecharlo.
No obstante, yo lo entendí de la otra forma por sus palabras finales:
Código:
es decir que dos mayoristas tengan el mismo sku.
Si el Fk es del mismo mayorista, algo que ocurrirá frecuentemente, debería haber dicho dos veces el mismo mayorista o distintos mayoristas para aclarar esa parte final.
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 05:48.