none
Usar una subConsulta como campo en una consulta principal RRS feed

  • Pregunta

  • Hola buenas tardes,

    Por favor, como podría hacer para realizar lo siguiente:

    select campo1, campo2, (select campo_n from tablaX) from tablaB

    y obtener la subconsulta como si fuera un campo mas de mi consulta principal

    gracias.

    miércoles, 28 de junio de 2017 17:27

Respuestas

  • {...} En realidad debería devolver solo una...

    Es decir, ¿una factura sólo puede tener una línea de detalle?. La combinación producirá n filas según las coincidencias que se produzcan en la expresión de comparación.

    SELECT
        f.numero, f.fecha, d.cantidad, d.producto
    FROM
        factura f 
        INNER JOIN factura_detalle d ON d.numero = f.numero
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 28 de junio de 2017 19:12
  • No estoy seguro que sea lo que andas buscando, pero quizá lo que quieres es algo así

    select campo1, campo2, (select campo_n from tablaX) from tablaB

    ¿Cómo filtrar tablax por los valores de tablab?

    select campo1, campo2, (select campo_n from tablaX where tablax.campo=tablab.campo) from tablaB


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 29 de junio de 2017 6:48
    Moderador

Todas las respuestas

  • Saludos,

    SELECT tbl2.campo1, tbl2.campo2, (SELECT tbl1.campo_n FROM tabla1 AS tbl1) FROM tabla2 AS tbl2



    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin





    • Editado J. Joaquin miércoles, 28 de junio de 2017 17:47
    miércoles, 28 de junio de 2017 17:44
  • ¿Cuántas filas retorna la subconsulta?, si es más de una -que es de esperar- no puedes contener un conjunto de resultados en una columna de la lista de selección a menos que muestres los resultados concatenados como una cadena de texto. Si por el contrario se trata de una subconsulta correlacionada debes definir la expresión de comparación con la consulta externa o obtener el resultado a partir de combinar ambas tablas en el bloque FROM.



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 28 de junio de 2017 17:58
  • En realidad debería devolver solo una, pero en si no se como armarlo porque debo hacer un inner para obtener un dato segun corresponda el numero de una factura.

    es decir debe ser

    select factura.numero, factura.fecha,

    (select factura_detalle.producto inner join factura on factura_detalle.numero=factura.numero)

     from factura

    pero para que sea lo mismo de acuerdo a la cabecera factura y detalle.

    gracias.

    miércoles, 28 de junio de 2017 18:56
  • Saludos,

    Pero tu pregunta entonces al principio no tenia ninguna similitud con lo que pides ahora lo del inner join está incorrecto como lo tienes deberia ser asi :

    select factura.numero, factura.fecha,
    (select campos1 from factura_detalle.producto inner join factura on factura_detalle.numero=factura.numero) AS Campo1
    from factura


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    miércoles, 28 de junio de 2017 19:03
  • {...} En realidad debería devolver solo una...

    Es decir, ¿una factura sólo puede tener una línea de detalle?. La combinación producirá n filas según las coincidencias que se produzcan en la expresión de comparación.

    SELECT
        f.numero, f.fecha, d.cantidad, d.producto
    FROM
        factura f 
        INNER JOIN factura_detalle d ON d.numero = f.numero
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 28 de junio de 2017 19:12
  • No estoy seguro que sea lo que andas buscando, pero quizá lo que quieres es algo así

    select campo1, campo2, (select campo_n from tablaX) from tablaB

    ¿Cómo filtrar tablax por los valores de tablab?

    select campo1, campo2, (select campo_n from tablaX where tablax.campo=tablab.campo) from tablaB


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 29 de junio de 2017 6:48
    Moderador