sql server - Error with my fact table: converting numeric to data type varchar -


i'm doing datawarehouse , need fill fact table, query when run code returns error:

msg 8115, level 16, state 5, line 98
arithmetic overflow error converting numeric data type varchar.

does know how solve it?

enter image description here

enter image description here

enter image description here

corsario.factura_linea_01

corsario.factura_linea_02

corsario.factura_01

corsario.factura_02

corsario.factura_03


insert dbo.hechos_ventas     select               da.cod_artkey, dt.cod_fechakey,         dz.cod_zonakey, dc.cod_idkey, fl.factura,         case             when f.tipo_documento = 'd'                fl.precio_unitario * - 1                else fl.precio_unitario          end precio_unitario,         convert(varchar(10), fl.fecha_factura, 101) fecha_fact,         f.tipo_documento, f.tipo_cambio,         case             when f.tipo_documento = 'd'                fl.desc_tot_linea * - 1                else fl.desc_tot_linea          end descuento,         case             when f.tipo_documento = 'd'                fl.cantidad * - 1                else fl.cantidad          end cantidad,         case             when f.tipo_documento = 'd'                fl.total_impuesto1 * - 1                else fl.total_impuesto1          end iva,         case             when f.tipo_documento = 'd'                fl.costo_total_local * -1                else fl.costo_total_local          end costo_total_local,         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end precio_total,         --ganancia         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end - case                    when f.tipo_documento = 'd'                      fl.costo_total_local * -1                      else fl.costo_total_local                end ganancia                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     inner join          dimension_tiempo dt on dt.fecha = f.fecha     inner join          dimension_cliente dc on dc.id_cliente = f.cliente     inner join          dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

i try in different way. created here sql statements, , need know each failure in execution.

if of them work, need create sql statements insert field field discover problem is. not better technique identify problem if easiest you.

first

--insert dbo.hechos_ventas     select               da.cod_artkey, dt.cod_fechakey,         dz.cod_zonakey, dc.cod_idkey, fl.factura,         case             when f.tipo_documento = 'd'                fl.precio_unitario * - 1                else fl.precio_unitario          end precio_unitario,         convert(varchar(10), fl.fecha_factura, 101) fecha_fact,         f.tipo_documento, f.tipo_cambio,         case             when f.tipo_documento = 'd'                fl.desc_tot_linea * - 1                else fl.desc_tot_linea          end descuento,         case             when f.tipo_documento = 'd'                fl.cantidad * - 1                else fl.cantidad          end cantidad,         case             when f.tipo_documento = 'd'                fl.total_impuesto1 * - 1                else fl.total_impuesto1          end iva,         case             when f.tipo_documento = 'd'                fl.costo_total_local * -1                else fl.costo_total_local          end costo_total_local,         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end precio_total,         --ganancia         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end - case                    when f.tipo_documento = 'd'                      fl.costo_total_local * -1                      else fl.costo_total_local                end ganancia                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     inner join          dimension_tiempo dt on dt.fecha = f.fecha     inner join          dimension_cliente dc on dc.id_cliente = f.cliente     inner join          dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

second

 select           *                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     --inner join      --    dimension_articulo da on da.cod_articulo = fl.articulo     --inner join      --    dimension_tiempo dt on dt.fecha = f.fecha     --inner join      --    dimension_cliente dc on dc.id_cliente = f.cliente     --inner join      --    dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

third

 select           *                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     --inner join      --    dimension_tiempo dt on dt.fecha = f.fecha     --inner join      --    dimension_cliente dc on dc.id_cliente = f.cliente     --inner join      --    dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

fourth

select       *                 softlanderp.corsario.factura_linea fl  inner join      softlanderp.corsario.factura f on f.factura = fl.factura inner join      dimension_articulo da on da.cod_articulo = fl.articulo inner join      dimension_tiempo dt on dt.fecha = f.fecha --inner join  --    dimension_cliente dc on dc.id_cliente = f.cliente --inner join  --    dimension_zona dz on dz.cod_zona = f.zona collate database_default             (f.anulada = 'n')      , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

fifth

 select           *                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     inner join          dimension_tiempo dt on dt.fecha = f.fecha     inner join          dimension_cliente dc on dc.id_cliente = f.cliente     --inner join      --    dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

sixth

select       *                 softlanderp.corsario.factura_linea fl  inner join      softlanderp.corsario.factura f on f.factura = fl.factura inner join      dimension_articulo da on da.cod_articulo = fl.articulo inner join      dimension_tiempo dt on dt.fecha = f.fecha inner join      dimension_cliente dc on dc.id_cliente = f.cliente inner join      dimension_zona dz on dz.cod_zona = f.zona collate database_default             (f.anulada = 'n')      , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

seventh

select               --da.cod_artkey, dt.cod_fechakey,         --dz.cod_zonakey, dc.cod_idkey, fl.factura,         --case          --   when f.tipo_documento = 'd'          --      fl.precio_unitario * - 1          --      else fl.precio_unitario          --end precio_unitario,         --convert(varchar(10), fl.fecha_factura, 101) fecha_fact,         --f.tipo_documento, f.tipo_cambio,         --case          --   when f.tipo_documento = 'd'          --      fl.desc_tot_linea * - 1          --      else fl.desc_tot_linea          --end descuento,         --case          --   when f.tipo_documento = 'd'          --      fl.cantidad * - 1          --      else fl.cantidad          --end cantidad,         case             when f.tipo_documento = 'd'                fl.total_impuesto1 * - 1                else fl.total_impuesto1          end iva,         case             when f.tipo_documento = 'd'                fl.costo_total_local * -1                else fl.costo_total_local          end costo_total_local,         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end precio_total,         --ganancia         case             when f.tipo_documento = 'd'                fl.precio_total * - 1                else fl.precio_total          end - case                    when f.tipo_documento = 'd'                      fl.costo_total_local * -1                      else fl.costo_total_local                end ganancia                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     inner join          dimension_tiempo dt on dt.fecha = f.fecha     inner join          dimension_cliente dc on dc.id_cliente = f.cliente     inner join          dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

eighth

select               da.cod_artkey, dt.cod_fechakey,         dz.cod_zonakey, dc.cod_idkey, fl.factura,         case             when f.tipo_documento = 'd'                fl.precio_unitario * - 1                else fl.precio_unitario          end precio_unitario,         convert(varchar(10), fl.fecha_factura, 101) fecha_fact,         f.tipo_documento, f.tipo_cambio,         case             when f.tipo_documento = 'd'                fl.desc_tot_linea * - 1                else fl.desc_tot_linea          end descuento,         case             when f.tipo_documento = 'd'                fl.cantidad * - 1                else fl.cantidad          end cantidad          --case       --      when f.tipo_documento = 'd'       --         fl.total_impuesto1 * - 1       --         else fl.total_impuesto1       --   end iva,      --   case       --      when f.tipo_documento = 'd'       --         fl.costo_total_local * -1       --         else fl.costo_total_local       --   end costo_total_local,      --   case       --      when f.tipo_documento = 'd'       --         fl.precio_total * - 1       --         else fl.precio_total       --   end precio_total,      --   --ganancia      --   case       --      when f.tipo_documento = 'd'       --         fl.precio_total * - 1       --         else fl.precio_total       --   end - case        --            when f.tipo_documento = 'd'       --               fl.costo_total_local * -1       --               else fl.costo_total_local       --         end ganancia                         softlanderp.corsario.factura_linea fl      inner join          softlanderp.corsario.factura f on f.factura = fl.factura     inner join          dimension_articulo da on da.cod_articulo = fl.articulo     inner join          dimension_tiempo dt on dt.fecha = f.fecha     inner join          dimension_cliente dc on dc.id_cliente = f.cliente     inner join          dimension_zona dz on dz.cod_zona = f.zona collate database_default                     (f.anulada = 'n')          , (year(fl.fecha_factura) in (2015, 2016, 2017)) 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -