none
una consulta para poder filtrar para diferentes almacenes RRS feed

  • Pregunta

  • buen día expertos, estoy realizando una consulta en sql server 2014

    en la imagen esta todo los lanzamientos...

    espero poder hacerme entender en la idea en todo caso para poder explicarlo mejor, gracias por la atención prestada.

    lunes, 2 de septiembre de 2019 17:54

Todas las respuestas

  • Hola mario gr:

    Es un poco difícil seguirte.

    Esto es lo que yo he creído leer, de tus imágenes, pero ya te digo, que quizá no sea correcto. 

    Si tu has mandado filtrar el almacén 7, pero ya no esta en el almacén 7, porque se ha mandado al 9, porque te lo va a traer.

    ¿Tienes una tabla de históricos? o la tabla de Almacén tiene registradas las dos lineas (la del almacén 7 y la del almacén 9)?

    lunes, 2 de septiembre de 2019 20:24
  • buenas Javi gracias por responder,... si mira lo primero es ..

    hay un requerimiento con estos 2 productos que se visualiza en la imagen entonces primeramente en el almacén 7 y en el 9, no esta registrado ninguno de estos 2 productos entonces cuando se quiere hacer la transferencia de estos 2 productos bien en el almacen 9 o 7 las 2 columnas estan en null ya que no esta registrado,...

    Pero cuando se envia como esta el ejemplo al almacén 9 una transferencia de los 2 productos,.. nuevamente despues se quiere hacer otra transferencia con otro requerimiento talvez tengamos estos 2 productos pero lo quiera enviar ahora al almacen 7 ya no me aparece en el detalle para hacer la tranferencia, si lo quiero transferir solo me sale los productos cuando lo quiero transferir en el almacen 9 porque segun ahi ya esta registrado estos productos.

    lo que necesito es que aunque ya envie al almacen 9 , si ahora quiero transferir al almacen 7 me salga null ya que ahi todavia no eh registrado ningun dato para poder transferir.

    lunes, 2 de septiembre de 2019 20:58
  • Hola mario gr.:

    Si pero no importa lo que necesites, si eso no esta grabado en ningún sitio.

    Imagínate el escenario, y respóndeme a esto.

    Si yo transfiero del 7 al 4, luego del 4 al 5, luego del 5 al 8 y luego del 8 al 3. Hay alguna manera de ver esos movimientos en una tabla??????

    martes, 3 de septiembre de 2019 9:24
  • hola Javi Fernández F ... Si claro que los datos están grabados inicialmente es la tabla detalle_requerimiento_simple, de ese lugar saco los datos para hacer la transferencia a distintos lugares,

    CREATE PROCEDURE SP_TRANSFERIR @IDFORM CHAR(10),@IDAL INT
    AS
    SELECT R.CODIGO_ANTIGUO,R.CODIGO_NUEVO,R.DESCRIPCION_PRODUCTO,A.id_Almacen,A.A_DESTINO,R.ID_REQUERIMIENTO FROM DETALLE_REQUERIMIENTO_SIMPLE R
    LEFT JOIN LISTADO_KARDEX_DIF_ALMACENES A ON R.CODIGO_NUEVO=A.CODIGO
    WHERE R.ID_REQUERIMIENTO LIKE '%'+@IDFORM+'%' AND (A.id_Almacen=@IDAL OR A.id_Almacen IS NULL)
    GO

    -en el DETALLE_REQUERIMIENTO_SIMPLE están guardado el detalle de los requerimientos, cuando uno quieres pasar los productos se visualizan de esta tabla, lo uno con la siguiente tabla usando un LEFT JOIN(para ver que aunque no tenga registrado en  LISTADO_KARDEX_DIF_ALMACENES me aparezcan los productos por eso en el where le indico si este tambien esta null me filtre, en la primera transferencia de un producto todo bien. el problema viene que cuando de nuevo quiero transferir ese producto con otro almacen, claro eso que este producto ya viene con otro requerimiento,  ya no aparece el producto solo si selecciono en el almacen donde lo transferi anteriormente ahi aparece y la cantidad que anteriormente transferi, lo que quisiera es que apareciera al seleccionar otro almacen y el producto este null, pero no visualiza nada.


    martes, 3 de septiembre de 2019 13:44
  • Hola Mario gr:

    Ok.

    Estaba leyendo tú código, y si requerimiento es un char(10), lo cual dice que tiene una longitud fija, quita por favor ese like '%' + @idform, por un like @idForm. En cuanto a rendimiento like '%'+variable+'%' es lo peor que le puedes hacer a una consulta. Ya se que tu me dirás que idForm, puede ser 'aa', pero entonces puedes evaluar en el form si la longitud es menor que 10 y entonces le anexas a @idForm: '%' + @idForm +'%'

    Volvemos al lio.

    Entonces, si te he entendido bien y el requerimiento es otro, como sabes si viene de un requerimiento anterior??? tienes una columna requerimiento anterior??? o tienes un código de producto que es invariable, y tienes un campo fecha tipo datetime o datetime2 que te permite ver un seguimiento de requerimientos para un producto, ordenados por fecha.

    martes, 3 de septiembre de 2019 19:44
  • hola Javi Fernández F ...

    (Estaba leyendo tú código, y si requerimiento es un char(10), lo cual dice que tiene una longitud fija, quita por favor ese like '%' + @idform, por un like @idForm. En cuanto a rendimiento like '%'+variable+'%' es lo peor que le puedes hacer a una consulta. Ya se que tu me dirás que idForm, puede ser 'aa', pero entonces puedes evaluar en el form si la longitud es menor que 10 y entonces le anexas a @idForm: '%' + @idForm +'%')---> gracias por la corrección si ya lo aplique lo que mencionaste 

    el filtro de @idform= char(10) es el id_del requerimiento ( es correlativo,... 20190001,20190002,20190003,..etc) y de tambien tengo una fecha datetime.

    martes, 3 de septiembre de 2019 21:54
  • Hola mario gr:

    Entonces directamente id_Requerimiento = @idForm y ya esta.

    Por otro lado, prueba esto, haber si encaja con lo que me has dicho

    and (A.id_almacen = @idal or A.id_Almacen IS NULL or @idal is null)

    miércoles, 4 de septiembre de 2019 4:35
  • Hola mario gr:

    Se me olvidó comentarte, que le envíes null al parámetro @idal

    miércoles, 4 de septiembre de 2019 7:25