Curso de SQL Server 2021 desde cero | SUBCONSULTAS: PARTE 2 (video 46)

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Segunda parte de la seccion de subconsultas
    CONTACTO: informaticonfig@gmail.com
    COLABORACION: paypal.me/informaticonfig
    patreon.com/informaticonfig

Komentáře • 31

  • @informaticonfig333
    @informaticonfig333  Před rokem +1

    Gracias por tu visita y participar en este curso, si te gusta por favor subscríbete, dame tu like y comparte
    para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho.
    Tambien para recibir las notificaciones de las nuevas lecciones que iré subiendo paulatinamente
    CONTACTO: informaticonfig@gmail.com
    COLABORACION: paypal.me/informaticonfig
    patreon.com/informaticonfig

    • @nestormoreira1191
      @nestormoreira1191 Před 11 měsíci

      profesor, por que no se uso el INNER JOIN en la sub consulta? y no mas uso el where?

  • @AlejandroRodriguez-st7ff
    @AlejandroRodriguez-st7ff Před 5 měsíci

    Profesor gracias por el video y por el curso,
    He estado intentado llegar al resultado de la segunda consulta que sería los clientes que no tienen el artículo Lápiz en sus facturas, en donde se usa el query:
    select cliente, numero, fecha
    from facturas f
    where not exists
    (select * from detalles d
    where f.numero = d.numerofactura
    and d.articulo = 'Lápiz');
    Intenté llegar al mismo resultado sin usar el not exists, solo usando enlace join, apliqué el siguiente query:
    select f.cliente,f.numero,f.fecha
    from facturas f
    left join detalles d on d.numerofactura = f.numero
    where f.numero not in (select numerofactura
    from detalles
    where articulo = 'Lápiz');
    Los nombres y datos de los clientes son los mismos pero hay un inconveniente con el resultado, repite el nombre y datos de los cliente, mientras que usando el not exists te devuelve un registro único de los clientes que no tienen lápiz en la factura. ¿Sabe cómo se podría solucionar este inconveniente? ¿Para poder llegar a ese resultado solo es usando el exists? Pasa que no me quedo muy claro y por eso intenté hacerlo de otra manera. Gracias

    • @informaticonfig333
      @informaticonfig333  Před 5 měsíci +1

      te repite el nombre por que con el join va a venir todo lo que coincida en el campo del enlace, con el not exists haces el filtro mas especificamente.

    • @josueviteri1390
      @josueviteri1390 Před 3 měsíci +2

      Buenas, también podría evitar la repetición de los datos al poner DISTINCT después del primer SELECT, claro, quizás para el tiempo que le respondo esto ya debió saber eso, aun así le aporto por si acaso. Pero como dice el profesor, mejor viene usar el NOT EXIST Y EL EXIST.

  • @saulalonsogilolivar2638
    @saulalonsogilolivar2638 Před 3 měsíci +1

    (select * from detalles d
    where f.numero = d.numerofactura
    and d.articulo = 'lapiz');
    me marca el siguiente error: Msg 4104, Level 16, State 1, Line 13
    The multi-part identifier "f.numero" could not be bound.

    • @informaticonfig333
      @informaticonfig333  Před 3 měsíci

      hola Salul,
      tu consulta está utilizando un alias (f) para la tabla que no ha sido definida, solo definiste la "d"

    • @saulalonsogilolivar2638
      @saulalonsogilolivar2638 Před 2 měsíci

      @@informaticonfig333 la subconsulta la estoy haciendo siguiendo los mismos pasos del video, reviso y reviso y me da el mismo error

    • @informaticonfig333
      @informaticonfig333  Před 2 měsíci

      @@saulalonsogilolivar2638 si pero ahí no estás completando la consulta, si le colocas:
      select clientes, numero, fecha from facturas where exists.
      Verás el resultado.

  • @narto38
    @narto38 Před 5 měsíci +1

    No comprendo el flujo lógico de la consulta

    • @informaticonfig333
      @informaticonfig333  Před 5 měsíci

      haces la subconsulta primero y el resultado lo pones como valor a buscar en la consulta principal, entendiste?

    • @narto38
      @narto38 Před 5 měsíci

      @@informaticonfig333 Si señor, hice una prueba de escritorio para entender el "algoritmo". Muchas gracias profesor

  • @XimenaBongoll
    @XimenaBongoll Před měsícem +1

    Hola, buenas Podria funcionar un inner join ahi tambien?
    Gracias

  • @nestormoreira1191
    @nestormoreira1191 Před 7 měsíci +1

    El EXISTS Solo se puede usar para enlazar solo 2 tablas?

    • @informaticonfig333
      @informaticonfig333  Před 7 měsíci +1

      te funciona para cuantas tablas quieras siempre y cuando establezcas el join

    • @nestormoreira1191
      @nestormoreira1191 Před 7 měsíci

      @@informaticonfig333 profe , disculpas como sería la estructura ?

  • @ricardoantonioGutierrezFerrer

    Excelente!!!

  • @nelsonrosariorodriguez8104
    @nelsonrosariorodriguez8104 Před 8 měsíci

    gracia profe

  • @chiopercyval4315
    @chiopercyval4315 Před 2 měsíci

    8:13 ¿No serviria tambien un *d.articulo != 'Lapiz');* ?

    • @informaticonfig333
      @informaticonfig333  Před 2 měsíci

      si haces eso la consulta no traerá ninguna campo con el articulo Lapiz.

  • @nestormoreira1191
    @nestormoreira1191 Před 11 měsíci +2

    Profesor , por que no se aplico un Inner join en la sub consulta? y se uso no mas el where?

    • @informaticonfig333
      @informaticonfig333  Před 11 měsíci +1

      por que estamos explorando toda la capacidad del lenguaje .

    • @nestormoreira1191
      @nestormoreira1191 Před 11 měsíci +1

      @@informaticonfig333 se podia poner? o simplemente podemos hacerlo asi tambien?

    • @nestormoreira1191
      @nestormoreira1191 Před 11 měsíci +1

      @@informaticonfig333 la subconsulta no muestra ningun resultado por si sola. es la parte que no entiendo

    • @informaticonfig333
      @informaticonfig333  Před 11 měsíci

      @@nestormoreira1191 hiciste una prueba?

    • @nestormoreira1191
      @nestormoreira1191 Před 11 měsíci +2

      @@informaticonfig333 si , la subconsulta da error por que no reconoce f.numero

  • @manuelconde6822
    @manuelconde6822 Před 5 měsíci

    Hola profe! estoy iniciándome en python y en un ejercicio me piden sacar el nombre de la persona cuyo DNI =22222222. Tengo ya dos tablas creadas en SQLite3. Las dos tienen en común la columna DNI. En la tabla1 tengo el nombre y apellidos y en la tabla 2 tengo el número de despacho que también me piden. Se debe hacer sin usar JOIN pero no me sale. me dice que es ambiguo. Alguna ayuda?