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?
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
Post a Comment