Consulta errónea con instrucción DISTINCT....

cbi
21 de Junio del 2004
Hola a todos:



Estoy intentando hacer una consulta SQL con el Access 2000, en la que pretendo que me de por resultado una tabla en la que aparezcan todos los productos cuyos códigos de barras no esten repetidos(o sea los diferentes), pero no cosigo que junto al campo código de barras salga su correspondiente precio de coste, PVP, etc., ya que al indicar en la consulta que aparezca estos otros campos, varia el nº de registros encontrados (salen muchos más), que los que realmente hay con código barras único, y que es lo que yo quiero,(estoy usando esencialmente la instrucción DISTINCT).

¿Alguién podría listar el código SQL para esta consulta??



Un saludo

Skakeo
21 de Junio del 2004
Y si pruebas a colgar el select distinct asi podemos ver que tal y eso, yo intento ayudarte si lo cuelgas.
Un saludo
Skakeo®

johndoepop
21 de Junio del 2004
El problema es que la claúsula DISTINCT afecta a todos los campos de la consulta, y el hecho que aparezcan repetidos quiere decir que para un mismo producto tienes más de un PVP o el campo que sea, lo que tienes que hacer es en lugar de usar DISTINCT, usar una claúsula de agrupación, por ejemplo:
SELECT BARCODE, MAX(PVP) FROM PRODUCTOS GROUP BY PVP;
Esto te devolverá una única línea por código de barras cosa que DISTINCT no haría. Cuantos más sean los campos más dificil será la agrupación así que tendrás que currarte el tema.