[ayuda] problema con consulta en sql

Discussion in 'Casos Resueltos Informáticos' started by cavoso, Feb 7, 2013.

Thread Status:
Not open for further replies.
  1. cavoso

    cavoso Usuario Casual nvl. 2
    197/244

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    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.
     
  2. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    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.
     
  3. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    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
     
  4. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    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
     
  5. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    Te faltó apretar más veces el F5 xd.

    Saludos.!
     
  6. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    hahahah xD no es por web, sino que por programa, xD
     
  7. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    jajjaaj a veces da la impresion que los problemas se "solucionan solos" ... saludos!
     
  8. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    Eso me pasaba cuando programaba en c++, menos mal que nunca más tuve que volver a usarlo.

    Saludos.
     
  9. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    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
     
Thread Status:
Not open for further replies.