que tal portaleanos, les cuento tengo un servidor de base de datos de mssql (sql de microsoft) y estoy haciendo un programa en visual basic 2008, el tema es que tengo una consulta con inner join dentro de la cual consulto datos como subconsultas, algo mas o menos asi select a.item, a.cantidad, (SELECT nombre from clasifi where id=a.clasificacion) 'clasificacion', b.ubicacion from tabla1 a INNER JOIN tabla2 b ON a.item=b.item esto es un ejemplo simple de lo que tengo xD, porque consulto mas de 24 datos en la misma consulta, condicionandolo en base a las selecciones en el programa, ahora el tema es que quiero condicionarla por la clasificacion (en este caso) y he ahi donde no tengo idea como hacer, si me dicen que lo aga atraves del programa ya se como hacer eso, pero no es mi idea ya que tendria que crear algunas funciones solo para hacer eso y me complicaria mas, si alguien sabe si se puede hacer se lo agradeceria un monton.
Hay algo que no entiendo de la query que pusiste, yo tengo entendido que la instrucción que está dentro del paréntesis devuelve una tabla como resultado pero estás usando esa salida como si fuera una columna. Al menos en el sqlite me dice que es incorrecto. Una aplicación correcta del paréntesis sería: select * from (select * from ramos where id>10) where id<15 esto se traduce en: buscar todos los registros de la tabla ramos donde el id sea mayor a 10, Del resultado de esa consulta, seleccionar los registros menores a 15 Ahora, como Microsoft tiene fama de salirse de los estándares para meter a la fuerza los suyos propios........ El JOIN es un tema distinto porque existe 3 tipos: El INNER normal (que es básicamente la intersección de tablas en un punto determinado), LEFT JOIN (usar todos los registros de la tabla de la izquierda y completar con la info de la tabla de la derecha) y el RIGHT JOIN que es lo mismo que el LEFT pero al revez. Cada join tiene su uso distinto. Saludos.
bueno te explico la sentencia que esta ahi no es incorrecta solo que el sqlite no la soporta, es todo, porque la he echo en mysql y en mssql y no no devuelve una tabla solo devuelve los registros que cumplen la condicion, en dicho caso es solo 1 por lo que solo entrega el valor que pido, pero el tema esta en que quiero consultar un dato en especifico de esa subconsulta sin tener que rehacer toda la consulta solo para eso ya que estoy actualmente procesando todos los datos en una sola parte, y condicionandolo en base a los parametros que se entregan por la aplicacion, cuando me den ganas de volver a hacer videotutoriales de programacion les muestro un poco de visual
bueno estimados ya solucione el problema, para que lo cierren la verdad es que me funciono como habia pensado xD, raro porque ya habia probado hacerlo de esa forma pero luego de revisar el codigo unas cuantas veces me funciono xD
hahaha xD pues yo programo en visual basic, asp y php imaginate en como me quedan los codigos donde cambio de un codigo a otro xD