none
Enumerar filas RRS feed

  • Pregunta

  • Amigos buenas noches , tengo insert el en el cual ingreso en una de las columnas  los codigos de unos productos ,  esta parte me funciona perfectamente  , resulta que yo tambien puedo ingresar un codigo de producto compuesto   el cual contiene algunas partes las cuales tambien son codigos de productos  , la cuestion es  como puedo yo enumerar cada item que  ingrese , por ejemplo si yo ingreso el codigo 098799 este me marque  en otro columna como 1 , si ingreso un codigo compuesto este me marque como 2 y las partes que contenga este me las cargue del 1 hasta la que contenga , si luego ingreso otro codigo este marque como  3 y asi  siempre que vaya ingresar los codigos este proceso de numeracion o quiero guardar en la columna NroLinea, osea la cuestion es que no se como validar para que me reconozca los codigos compuestos de los  no compuestos. espero me entiendan y me puedan ayudar , comparto mi codigo.

    ALTER PROC [dbo].[InsertarGastoSaitemFac]
    @NotaEn varchar(20),
    @Remision varchar(20),
    @Bodega varchar(10),
    @CodItem nvarchar(80),
    @Descrip varchar(200),
    @Cantidad decimal(28, 4),
    @Precio DECIMAL(28,4),
    @NroUnicoL INT,
    @NroLote varchar(20),
    @FechaCirugia DATETIME
     
    AS
    SET DATEFORMAT YMD
    DECLARE @ESEXENTO INT,
    @DESLOTE INT,
    @COSTPRO DECIMAL(28,4),
    @Descrip3 nvarchar(50)

    SELECT @ESEXENTO =  EsExento
     FROM dbo.SAPROD WHERE CodProd = @CodItem

    SELECT @DESLOTE = DEsLote
     FROM dbo.SAPROD WHERE CodProd = @CodItem

    SELECT @COSTPRO = CostPro
     FROM dbo.SAPROD WHERE CodProd = @CodItem


     select @Descrip3 = Descrip3
      from SAPROD where CodProd =@CodItem

    begin



    INSERT INTO dbo.SAITEMFAC ( CodSucu, TipoFac, NumeroD,OTipo,ONumero, NroLinea, NroLineaC, CodItem,CodUbic ,CodVend, Descrip1, Descrip2, Descrip3, Descrip4, Descrip5,
    Descrip6, Descrip7, Descrip8, Descrip9, Descrip10, Signo, CantMayor, Cantidad, CantidadD, CantidadO, CantidadA,
    CantidadU, CantidadUA, ExistAntU, ExistAnt, Tara, TotalItem, Costo, Precio, MtoTax, PriceO, Descto, NroUnicoL,NroLote,
    FechaE, FechaV, EsServ, EsUnid, EsFreeP, EsPesa, EsExento, UsaServ, DEsLote, DEsSeri, DEsComp)
    VALUES ( '00000', 'C',@NotaEn, 'E',@Remision, 1, 0, @CodItem,@Bodega, 'APP', @Descrip, '', @Descrip3,'', '', '', '', '','', '',1,0,@Cantidad,0, 0, 0, 0, 0, 0, 0, 0,
    0, @COSTPRO,@Precio,0, 0, 0, @NroUnicoL,@NroLote, @FechaCirugia, @FechaCirugia, 0, 0, 0, 0, @ESEXENTO,0,@DESLOTE,0,0)

    end;

     

    Daniel

    jueves, 23 de julio de 2020 3:08

Todas las respuestas

  • Hola Dannycv012:

    ¿Pero como se identifica que un código es compuesto o no lo es?

    Puedes poner ejemplos con datos más o menos reales.

    jueves, 23 de julio de 2020 11:24
  • Javier por ejemplo

    si yo inserto al  este codigo  0001  en la primera fila debe  quedar asi

    Codigo   Descripcio                                    Nrolinea

    0001     Bandeja para tornillo set radio           1

    si yo voy a insertar un compuesto con este coddigo C3.0-4.0N1 debe quedar asi en la segunda fila

    Codigo           Descripcion    NroLinea

    C3.0-4.0N1    combomano3     2                 y debajo de este me deben cargar las partes que continene 

    2703903MD     Rotula              0
    937510150       clavija              1
    316004            Molde                 2

    si despues de este ingreso otro codigo que no es compuesto lo debe tomar como fila tres

    Codigo        Descripcion    Nrolinea

    2703903MD  Rotula              3

    la idea es que cuando  yo cargue un compuesto este me lo tome como una sola fila en la enumeracion de nrolinea



    Daniel

    jueves, 23 de julio de 2020 13:51
  • Si pero, que es un código compuesto?. ¿Cómo se yo que es un código compuesto?

    Por ejemplo, porque tiene un guión.

    Las enumeraciones en Sql server se realizan con row_number()

    https://javifer2.wordpress.com/2019/11/11/row-number-numerar-filas/

    -- con una sola lectura puedes alimentar las 3 variables
    
    
    SET DATEFORMAT YMD;
    
    DECLARE @ESEXENTO INT
    	  , @DESLOTE  INT
    	  , @COSTPRO  DECIMAL(28, 4)
    	  , @DESCRIP3 nvarchar(50);
    
    SELECT  @ESEXENTO = EsExento
    	    , @DESLOTE = DEsLote
    	    , @COSTPRO = CostPro
    	    , @DESCRIP3 = Descrip3
    	   FROM dbo.SAPROD
    	   WHERE CodProd = @CODITEM;


    jueves, 23 de julio de 2020 14:14