Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

SELECT DISTINCT con DB Tools Select Data.vi

¡Resuelto!
Ir a solución

¡Buenas a tod@s!

 

Hay alguna forma de usar este VI para ejecutar un SELECT DISTINCT? Que alternativa tendría?

 

¡Saludos!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 1 de 6
3.863 Vistas

Hola Francisco,

 

Si miras el archivo de ayuda del VI puedes ver como uno de los inputs es 'condition'. Literalmente dice:

condition specifies an SQL clause that this VI uses to filter the selection criteria. This VI appends this clause to the end of a select statement. For example, where (col1 > 10).

La documentación respecto a esto es bastante escasa, pero en principio debería funcionar.

Si no, siempre puedes realizarlo programáticamente, aunque sea más costoso. El equivalente en LV a un Select Distinct sería algo así:

 

distinct.png

 

 

Espero que te sea de ayuda, dime si con 'condition' consigues algo.

 

¡Un saludo!

Angel Marin
National Instruments
Applications Engineering
www.ni.com/support
Mensaje 2 de 6
3.858 Vistas

Hola Angel,

 

Por lo que yo se y entiendo, la cláusula DISTINCT no es una cláusula condicional, no se utiliza para una sentencia WHERE. DISTINCT se usa para seleccionar los distintos valores de un campo, el cual contenga repetidos.

Así que no funcionaria en como input de la entrada 'condition'

 

Sigo investigando y te comento.

 

¡Saludos!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 3 de 6
3.853 Vistas

Por cierto... 

 

No consigo distinguir que VI es la que usas en el segundo For, dónde juntas la constate array con un índice, usando el resultado de la puerto lógia OR...:manfrustrated:

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 4 de 6
3.847 Vistas

Disculpa Francisco, no me fijé en ese detalle. Es normal que no lo encuentres, ya que no existe. No es más que un build array con una condición, puedes progamarlo tu muy facilmente. Si tienes problemas dímelo y te ayudo.

 

Respecto al input de condición, por lo que yo entiendo lo que se escriba irá después de la sentencia SELECT. Puede ser FROM, WHERE o entiendo que DISTINCT. ¿Has hecho la prueba?

 

 

Angel Marin
National Instruments
Applications Engineering
www.ni.com/support
Mensaje 5 de 6
3.829 Vistas
Solución
Aceptado por el autor del tema fran_jo

Hola Angel,

 

El imput conditon se refiere a las sentencias para filtrar los datos que... en SQL se refiere a la sentencia WHERE con todas las condiciones posibles. La palabra DISTINCT afecta los campos seleccionados y no es ninguna condición de filtrado en si. Es decir, no se puede usar DISTINCT como imput de condition porque entonces DB Tools Select Data VI construye mal la SQL y falla la ejecución.

 

La solución al problema està en escribir DISTINCT junto al nombre del campo. Cómo distinct afecta a la selección de valores de campo, si se escribe DISTINCT NombreCampo en el inpunt de columns, entonces ya tengo lo que busco. Todo esto ¡probado y funcionando!... 

 

¡Muchas gracias por tu ayuda!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 6 de 6
3.826 Vistas