none
Consulta SQL Server RRS feed

  • Pregunta

  • Buenos días expertos.

    El presente es para solicitarle su acostumbrado apoyo.

    Tengo una tabla llamada ABC donde existe un campo llamado idtarifa, ese campo identifica un tipo de tarifa de venta, a su vez también tengo un campo llamado codarticulo, ese campo me indica el código del  articulo. un articulo me posee mas de una tarifa. Quiero saber como hacer script que me traiga los artículos que tenga el nro de tarifa 4 y 6.  si ejecuto 

    SELECT * FROM PRECIOSVENTA WHERE IDTARIFAV = 4 AND IDTARIFAV = 6 NO ME TRAE NADA, pero existe en la tabla articulos que tienen las dos tarifas...

    Como puedo hacer eso?

    Gracias.


    Gerson Requena

    miércoles, 22 de agosto de 2018 14:47

Respuestas

  • Hola , el and es excluyente

    intenta con el OR

    SELECT * FROM PRECIOSVENTA WHERE IDTARIFAV = 4 OR IDTARIFAV = 6


    Votar es agradecer.
    Saludos.
    Lima-Perú


    miércoles, 22 de agosto de 2018 14:53
  • creo que seria mejor si pudieses colocar algún ejemplo con datos de muestra del resultado que obtienes y el resultado esperado, ya que en la forma que te expresas la condición IN cubre estas necesidades ya que obtiene el resultado de solo los IDTARIFAV 4 y 6. a no ser que tengas otra condición mas a filtrar?.

    Saludos.


    • Editado osrol miércoles, 22 de agosto de 2018 16:06
    • Marcado como respuesta Pablo RubioModerator lunes, 27 de agosto de 2018 14:30
    miércoles, 22 de agosto de 2018 16:02

Todas las respuestas

  • Hola , el and es excluyente

    intenta con el OR

    SELECT * FROM PRECIOSVENTA WHERE IDTARIFAV = 4 OR IDTARIFAV = 6


    Votar es agradecer.
    Saludos.
    Lima-Perú


    miércoles, 22 de agosto de 2018 14:53
  • Gracias Augusto, pero no funciona, eso me trae los que tienen 4 o 6,

    solo quiero que me traiga los que tienen 4 y 6...

    Gracias por tu tiempo.


    Gerson Requena

    miércoles, 22 de agosto de 2018 14:55
  • Al parecer necesitas hacer algún join, pero especifica bien las tablas que utilizas  porque mencionas hasta tres 

    PRECIOSVENTA,abc y artículos.


    Votar es agradecer.
    Saludos.
    Lima-Perú

    miércoles, 22 de agosto de 2018 15:04
  • No amigo, es una misma tabla... 

    PRECIOSVENTAS

    Gracias


    Gerson Requena

    miércoles, 22 de agosto de 2018 15:16
  • Hola.

    Lo que deberías usar seria la Condicional IN para que te retorne los artículos con IDTARIFAV 4 y 6.

    SELECT * FROM PRECIOSVENTA WHERE IDTARIFAV IN (4,6);

    Espero te sirva de ayuda.

    Saludos.


    • Editado osrol miércoles, 22 de agosto de 2018 15:39
    miércoles, 22 de agosto de 2018 15:32
  • Gracias Osrol

    Si ya probé con esa opción, pero me trae todos los que tienen 4 y 6. Pero quiero que se me muestre los que poseen solo 4 y 6.

    Gracias


    Gerson Requena

    miércoles, 22 de agosto de 2018 15:42
  • Hola Gerson Requena:

    Puedes hacer un except

    create table preciosventa (idtarifa int, codart int)
    go
    insert into preciosventa (idtarifa, codart)
    values (1,1),
    (4,1),
    (2,2),
    (4,2),
    (6,2),
    (4,3),
    (6,3),
    (6,4)
    go
    
    select codart from preciosventa where idtarifa in (4,6)
    except 
    select codart from preciosventa where idtarifa not in (4,6)
    
    
    

    Resultado 3 y 4

    Un saludo

    miércoles, 22 de agosto de 2018 16:00
  • creo que seria mejor si pudieses colocar algún ejemplo con datos de muestra del resultado que obtienes y el resultado esperado, ya que en la forma que te expresas la condición IN cubre estas necesidades ya que obtiene el resultado de solo los IDTARIFAV 4 y 6. a no ser que tengas otra condición mas a filtrar?.

    Saludos.


    • Editado osrol miércoles, 22 de agosto de 2018 16:06
    • Marcado como respuesta Pablo RubioModerator lunes, 27 de agosto de 2018 14:30
    miércoles, 22 de agosto de 2018 16:02