none
error tipo de campo al crear una tabla temporal RRS feed

  • Pregunta

  • amigos, saludos a todos, tengo un error al generar una tabla temporal de la forma:

    SELECT TOP 0 *,null sal_act,null no_certif
        INTO #CALCULO
        FROM CALCULO_CC

    necesito tenga todos los campos de CALCULO_CC ademas los campos sal_act y no_certif

    lo que pasa es que el campo sal_Act me lo crea como int ya que al insertarle un valor como 305.6547 solo lo guarda como 305 como puedo obligar al campo para que reciba un decimal(10,5)

    espero su ayuda amigos por favor

    martes, 5 de mayo de 2015 15:30

Respuestas

  • Bpotro82 usa este código de esta manera podrías insertar datos de una tabla especificandole los campos a llenar en tu tabla temporal creada:

    CREATE TABLE #CALCULO
    (
    CAMPO01 INT,
    CAMPO02 VARCHAR(50),
    sal_act DECIMAL(10,5) NULL,
    no_certif INT NULL
    )
    
    INSERT INTO #CALCULO
    SELECT CAMPO01 ,CAMPO02 , null AS sal_act,null AS no_certif FROM CALCULO_CC
    Saludos.

    • Marcado como respuesta Bpotro82 martes, 5 de mayo de 2015 19:48
    martes, 5 de mayo de 2015 19:28

Todas las respuestas

  • Usa CAST o CONVERT, así:

    select cast( 1 AS DECIMAL(10,5) ) AS col1 , CAST( 123.12345 AS DECIMAL(10,3) ) AS col2
    INTO #tablaTmp
    
    SELECT * FROM #tablaTmp
    

    SALUDOS!

    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    martes, 5 de mayo de 2015 17:26
  • Hola Bpotro82 deberías convertir dichos campos a un decimal de (10,5), luego especificar todas las columnas de la tabla CALCULO_CC y si deseas agregarle mas campos:

    SELECT TOP 1 CAST(Campo01 AS decimal(10,5)), null AS sal_act,null AS no_certif
    INTO #CALCULO FROM CALCULO_CC

    Ojo: Deberás especificar las demás columnas de tu tabla CALCULO_CC o las que pienses usar.

    Espero haberte ayudado.

    martes, 5 de mayo de 2015 17:41
  • Estimado Aldair el campo que necesito se especifique como decimal(10,5) es el nuevo campo que le estoy incluyendo "sal_act" cuando trato de ponerle el cast en este campo me da error
    martes, 5 de mayo de 2015 19:15
  • Hola Bpotro82 entonces lo que podrias hacer seria lo siguiente:

    CREATE TABLE #CALCULO ( CAMPO01 INT, CAMPO02 VARCHAR(50), sal_act DECIMAL(10,5) NULL

    )

    SELECT TOP 1 CAST(Campo01 AS decimal(10,5)),CAMPO2, null AS sal_act,null AS no_certif
    INTO #CALCULO FROM CALCULO_CC

    Primero deberas crear tu tabla temporal como se muestre arriba y luego insertarle datos mediante un select.

    Saludos.


    martes, 5 de mayo de 2015 19:21
  • Bpotro82 usa este código de esta manera podrías insertar datos de una tabla especificandole los campos a llenar en tu tabla temporal creada:

    CREATE TABLE #CALCULO
    (
    CAMPO01 INT,
    CAMPO02 VARCHAR(50),
    sal_act DECIMAL(10,5) NULL,
    no_certif INT NULL
    )
    
    INSERT INTO #CALCULO
    SELECT CAMPO01 ,CAMPO02 , null AS sal_act,null AS no_certif FROM CALCULO_CC
    Saludos.

    • Marcado como respuesta Bpotro82 martes, 5 de mayo de 2015 19:48
    martes, 5 de mayo de 2015 19:28
  • si al parcer la unica manera se creando la definicion de la tabla temporal :( bueno amigos gracias por las respuestas
    martes, 5 de mayo de 2015 19:48
  • Proba asi

    SELECT TOP 0 a.*,b.sal_act,b.no_certif from calculo_cc a,(select 1.00000 as  sal_act, 1.0000 as no_certif) as b
        INTO #CALCULO
    Con esto no tenes que crear la temporal,tomas todos los campos de calculo_cc (imaginate si son 20 campos por ejemplo tener que crear la tabla con los 20....) y al insertar te conserva el numeric.


    • Editado LUIS TARZIA jueves, 7 de mayo de 2015 3:26
    • Propuesto como respuesta LUIS TARZIA jueves, 7 de mayo de 2015 23:11
    jueves, 7 de mayo de 2015 3:26