SQL Server - Distinct con image

 
Vista:

Distinct con image

Publicado por timon (2 intervenciones) el 05/02/2007 02:01:26
En ASP .net 2.0, con microsoft SQL server se pueden poner campos de tipo image.
En una consulta quiero usar distinct porque tengo que hacer un join con otra tabla (actuaciones) para comprobar que una "banda" tiene alguna "actuacion", pero no quiero una fila por cada actuacion de la banda. Hasta ahi todo bien. Pero si quiero mostrar un campo image me dice que entonces no puede hacer distinct porque no puede comparar imagenes.

Si uso GROUP BY, la consulta queda asi:

SELECT banda.ID_banda, banda.nombre, banda.genero FROM banda INNER JOIN bandas_actuaciones ON banda.ID_banda = bandas_actuaciones.ID_banda WHERE (bandas_actuaciones.aceptado = 'true') GROUP BY (banda.ID_banda) ORDER BY banda.genero, banda.nombre
***Bueno si, aqui no estoy accediendo a la imagen, pero es igual

Y me da el siguiente error:

Column 'banda.nombre' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Que puedo hacer??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Distinct con image

Publicado por Isaías (3308 intervenciones) el 06/02/2007 03:45:05
No puedes usar GROUP BY, si no usas una funcion de agregacion (SUM, COUNT, MIN, MAX, etc).

En cuanto a poder hacer un DISTINCT sobre un campo IMAGE, es imposible, si tienes identificadas tus imagenes por un ID, entonces hazlo por este campo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Distinct con image

Publicado por Devjoker (1 intervención) el 22/02/2007 15:56:38
Como bien dice Isaías no puedes hacer un distinct contrar un campo imagen.

La solución para este tipo de problemas es agregar un nuevo campo a la tabla de tipo varchar y guardar el valor de suma del archivo MD5 (o cualquier otro algoritmo de suma) y hacer el DISTINCT sobre él.

Me explico, cualquier archivo sea imagen o no es una sucesión de bytes. Existen algoritmos que para una determinada sucesión devuelve un valor de suma único (MD5 es uno de ellos), es decir, dos archivos tienen la misma suma MD5 si y solo si son exactamente iguales. Aunque tengan nombre y extension diferente, si su suma MD5 vale lo mismo podemos garantizar que son iguales.

Saludos, DJK

www.devjoker.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Distinct con image

Publicado por timon (2 intervenciones) el 23/02/2007 20:04:53
gracias a los dos, porque decis cosas que no sabia.
pero la cosa es que para lo que queria, que era mostrar solo filas unicas consultando un campo image, al final encontre otra solución.
La cosa fue utilizar un WHERE EXIST en lugar del INNER JOIN, que era innecesario y, ademas, por lo que leí en algun post de este mismo foro consume más recursos que el where exist. Gracias de todas formas. No sabia que era necesario utilizar una función con el group by. y tampoco sabia nada de los algorimos MD5. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar