none
ANTONIO FIGUEROA RRS feed

  • Pregunta

  • FECHA...........PRODUCTO...SALDO INICIAL .....ENTRADAS.......SALIDAS.......SALDO FINAL

    13/08/2019   CAMISA                 8                        2                   1                       9

    31/08/2019   CAMISA                 9                         0                   1                      8

    13/08/2019    PANTALON            5                          0                    1                    4

    HOLA QUERIA AYUDA SOBRE COMO MOSTRAR ESTA MISMA TABLA PERO TOTALIZÁNDOLA POR MES DE MANERA QUE SALGA EL STOCK INICIAL DEL MES LA SUMATORIA DE ENTRADAS,LA SUMATORIA DE SALIDAS Y STOCK FINAL QUE SERIA STOCK INICIAL + ENTRADAS- SALIDAS 

    DE ESTA FORMA

    MES ...........PRODUCTO...SALDO INICIAL .....ENTRADAS.......SALIDAS.......SALDO FINAL

    AGOSTO        CAMISA              8                           2                 2                     8

    AGOSTO        PANTALON           5                          0                 1                      4

    HACIENDO UN RESUMEN SOLO POR EL MES QUE ESCOJA  

    miércoles, 14 de agosto de 2019 0:27

Respuestas

Todas las respuestas

  • Deleted
    miércoles, 14 de agosto de 2019 3:41
  • HOLA USO SQLSERVER 2014

    miércoles, 14 de agosto de 2019 14:19
  • Deleted
    miércoles, 14 de agosto de 2019 16:13
  • HOLA AL EJECUTAR EL QUERY ME MARCA ALGUNOS ERRORES LA TABLA QUE UTILIZO ES ESTA CON ALGUNOS DATOS DE PRUEBA

    CREATE TABLE kardex
    (FECHA      DATE, 
     DOCUMENTO  VARCHAR(4), 
     PRODUCTO   VARCHAR(15), 
     CANTIDAD   DECIMAL(18,2), 
     MOVIMIENTO VARCHAR(15)
    );
    GO

    INSERT INTO kardex
    (FECHA,
    DOCUMENTO,
    PRODUCTO,
    CANTIDAD,
    MOVIMIENTO)
    VALUES
    ('20190730','0001','CAMISA',15,'ENTRADA'),
    ('20190731','0002','CAMISA',2,'SALIDA'),
    ('20190801','0003','CAMISA',3,'ENTRADA'),
    ('20190801','0007','CAMISA',1,'SALIDA'),
    ('20190802','0004','CAMISA',2,'SALIDA'),
    ('20190803','0005','CAMISA',1,'ENTRADA'),
    ('20190830','0006','CAMISA',2,'SALIDA'),
    ('20190901','0007','PANTALON',4,'ENTRADA'),
    ('20190802','0008','PANTALON',2,'SALIDA'),
    ('20190803','0009','PANTALON',1,'ENTRADA'),
    ('20190830','0010','PANTALON',2,'SALIDA')
    ;
    GO

    LOS ERRORES QUE MARCA SON ESTOS


    Mens. 207, Nivel 16, Estado 1, Línea 22
    El nombre de columna 'SALDO INICIAL' no es válido.
    Mens. 207, Nivel 16, Estado 1, Línea 23
    El nombre de columna 'ENTRADAS' no es válido.
    Mens. 207, Nivel 16, Estado 1, Línea 24
    El nombre de columna 'SALIDAS' no es válido.
    Mens. 207, Nivel 16, Estado 1, Línea 25
    El nombre de columna 'SALDO FINAL' no es válido

    sábado, 17 de agosto de 2019 14:53
  • Deleted
    sábado, 17 de agosto de 2019 17:32
  • SI NO ME EXPLIQUE MUY BIEN AL PRINCIPIO ,USO SQLSERVER 2014 
    sábado, 17 de agosto de 2019 18:08
  • Deleted
    sábado, 17 de agosto de 2019 18:56
  • HOLA EL CÓDIGO NUMERO 2  FUNCIONA BIEN CUANDO HAY REGISTROS ÚNICOS DE SALIDA POR DÍA PERO  SI HAY DOS SALIDAS DEL MISMO PRODUCTO EN EL MISMO DIA NO SUMA LAS SALIDAS NI LAS RESTA AL SALD

    martes, 20 de agosto de 2019 14:47
  • Deleted
    martes, 20 de agosto de 2019 16:45
  • HOLA ES VERDAD ALGUNAS RESPUESTAS DESAPARECIERON EL CÓDIGO ES ESTA 

    ESTA ES LA TABLA CON LOS DATOS

    CREATE TABLE kardex
    (FECHA      DATE, 
     DOCUMENTO  VARCHAR(4), 
     PRODUCTO   VARCHAR(15), 
     CANTIDAD   DECIMAL(18,2), 
     MOVIMIENTO VARCHAR(15)
    );
    GO

    INSERT INTO kardex
    (FECHA,
    DOCUMENTO,
    PRODUCTO,
    CANTIDAD,
    MOVIMIENTO)
    VALUES
    ('20190730','0001','CAMISA',15,'ENTRADA'),
    ('20190731','0002','CAMISA',2,'SALIDA'),
    ('20190801','0003','CAMISA',3,'ENTRADA'),
    ('20190801','0004','CAMISA',1,'SALIDA'),
    ('20190801','0005','CAMISA',1,'SALIDA'),
    ('20190801','0006','CAMISA',1,'SALIDA');
    ('20190802','0007','CAMISA',2,'SALIDA'),
    ('20190803','0008','CAMISA',1,'ENTRADA'),
    ('20190830','0009','CAMISA',2,'SALIDA'),
    ('20190901','0010','PANTALON',4,'ENTRADA'),
    ('20190802','0011','PANTALON',2,'SALIDA'),
    ('20190803','0012','PANTALON',1,'ENTRADA'),
    ('20190830','0013','PANTALON',2,'SALIDA')
    ;
    GO

    martes, 20 de agosto de 2019 18:56
  • ESTE ES EL CODIGO #2

    declare @Mes int, @Ano int;
    set @Mes= 8;
    set @Ano= 2019;

    declare @DataI date, @DataF date, @DenoMes varchar(20);
    set @DataI= convert (date, '1/' + cast(@Mes as varchar(2)) + '/' + cast (@Ano as char(4)), 103);
    set @DataF= dateadd (day, -1, dateadd (month, +1, @DataI));
    set language Español;
    set @DenoMes= datename (month, @DataI);

    with 
    kardex_seq as (
    SELECT *, seq= row_number() over (partition by PRODUCTO order by FECHA, MOVIMIENTO)
      from kardex
    ),
    Saldo_Diario as (
    SELECT FECHA, PRODUCTO, cast (0 as decimal (18,2)) as SALDO_INICIAL, 
           case when MOVIMIENTO = 'ENTRADA' then CANTIDAD else 0 end as ENTRADA,
           case when MOVIMIENTO = 'SALIDA' then CANTIDAD else 0 end as SALIDA,
           case when MOVIMIENTO = 'ENTRADA' 
                           then CANTIDAD 
                      else -CANTIDAD end as SALDO_FINAL, seq
      from kardex_seq 
      where seq = 1
    union all
    SELECT KS.FECHA, KS.PRODUCTO, SD.SALDO_FINAL,
           case when KS.MOVIMIENTO = 'ENTRADA' then KS.CANTIDAD else 0 end,
           case when KS.MOVIMIENTO = 'SALIDA' then KS.CANTIDAD else 0 end,
           cast (case when KS.MOVIMIENTO = 'ENTRADA' 
                           then (SD.SALDO_FINAL + KS.CANTIDAD) 
                      else (SD.SALDO_FINAL - KS.CANTIDAD) end as decimal(18,2)), KS.seq
      from Saldo_Diario as SD
           inner join kardex_seq as KS on KS.PRODUCTO = SD.PRODUCTO
                                         and KS.seq = (SD.seq +1)
      where KS.FECHA <= @DataF                                     
    ), 
    Lectura as (
    SELECT *, 
           prim= row_number() over (partition by PRODUCTO order by FECHA),
           ult= row_number() over (partition by PRODUCTO order by FECHA desc)
      from Saldo_Diario
      where FECHA between @DataI and @DataF
    )
    SELECT @DenoMes as MES, PRODUCTO,
           max (case when prim = 1 then SALDO_INICIAL end) as SALDO_INICIAL,
           sum (ENTRADA) as ENTRADAS,
           sum (SALIDA) as SALIDAS,
           max (case when ult = 1 then SALDO_FINAL end) as SALDO_FINAL
      from Lectura
      group by PRODUCTO;

    martes, 20 de agosto de 2019 19:03
  • Deleted
    miércoles, 21 de agosto de 2019 14:29
  • HOLA GRACIAS POR SU AYUDA ,ES JUSTO LO QUE NECESITABA 
    sábado, 24 de agosto de 2019 16:27