Je vais essayer de vous aider d'une manière différente. J'ai créé ici quelques instructions SQL, et j'ai besoin de connaître chaque échec de l'exécution.
Si tous fonctionnent, nous devons créer des instructions SQL pour insérer champ par champ afin de découvrir où se situe le problème. Ce n'est pas la meilleure technique pour identifier le problème, mais le plus facile à vous aider.
Première
--INSERT INTO dbo.Hechos_Ventas
SELECT
DA.COD_ARTKEY, DT.COD_FECHAKEY,
DZ.COD_ZONAKEY, DC.COD_IDKEY, FL.FACTURA,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_UNITARIO * - 1
ELSE fl.PRECIO_UNITARIO
END AS PRECIO_UNITARIO,
CONVERT(VARCHAR(10), FL.FECHA_FACTURA, 101) AS FECHA_FACT,
F.TIPO_DOCUMENTO, F.TIPO_CAMBIO,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.DESC_TOT_LINEA * - 1
ELSE fl.DESC_TOT_LINEA
END AS DESCUENTO,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.CANTIDAD * - 1
ELSE fl.cantidad
END AS CANTIDAD,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.TOTAL_IMPUESTO1 * - 1
ELSE fl.TOTAL_IMPUESTO1
END AS IVA,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.COSTO_TOTAL_LOCAL * -1
ELSE FL.COSTO_TOTAL_LOCAL
END AS COSTO_TOTAL_LOCAL,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_TOTAL * - 1
ELSE fl.PRECIO_TOTAL
END AS PRECIO_TOTAL,
--GANANCIA
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_TOTAL * - 1
ELSE fl.PRECIO_TOTAL
END - CASE
WHEN f.tipo_documento = 'D'
THEN FL.COSTO_TOTAL_LOCAL * -1
ELSE FL.COSTO_TOTAL_LOCAL
END AS GANANCIA
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Deuxième
SELECT
*
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Troisième
SELECT
*
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Quatrième
SELECT
*
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Cinquième
SELECT
*
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Sixième
SELECT
*
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Septième
SELECT
--DA.COD_ARTKEY, DT.COD_FECHAKEY,
--DZ.COD_ZONAKEY, DC.COD_IDKEY, FL.FACTURA,
--CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.PRECIO_UNITARIO * - 1
-- ELSE fl.PRECIO_UNITARIO
--END AS PRECIO_UNITARIO,
--CONVERT(VARCHAR(10), FL.FECHA_FACTURA, 101) AS FECHA_FACT,
--F.TIPO_DOCUMENTO, F.TIPO_CAMBIO,
--CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.DESC_TOT_LINEA * - 1
-- ELSE fl.DESC_TOT_LINEA
--END AS DESCUENTO,
--CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.CANTIDAD * - 1
-- ELSE fl.cantidad
--END AS CANTIDAD,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.TOTAL_IMPUESTO1 * - 1
ELSE fl.TOTAL_IMPUESTO1
END AS IVA,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.COSTO_TOTAL_LOCAL * -1
ELSE FL.COSTO_TOTAL_LOCAL
END AS COSTO_TOTAL_LOCAL,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_TOTAL * - 1
ELSE fl.PRECIO_TOTAL
END AS PRECIO_TOTAL,
--GANANCIA
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_TOTAL * - 1
ELSE fl.PRECIO_TOTAL
END - CASE
WHEN f.tipo_documento = 'D'
THEN FL.COSTO_TOTAL_LOCAL * -1
ELSE FL.COSTO_TOTAL_LOCAL
END AS GANANCIA
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Huitième
SELECT
DA.COD_ARTKEY, DT.COD_FECHAKEY,
DZ.COD_ZONAKEY, DC.COD_IDKEY, FL.FACTURA,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.PRECIO_UNITARIO * - 1
ELSE fl.PRECIO_UNITARIO
END AS PRECIO_UNITARIO,
CONVERT(VARCHAR(10), FL.FECHA_FACTURA, 101) AS FECHA_FACT,
F.TIPO_DOCUMENTO, F.TIPO_CAMBIO,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.DESC_TOT_LINEA * - 1
ELSE fl.DESC_TOT_LINEA
END AS DESCUENTO,
CASE
WHEN f.tipo_documento = 'D'
THEN FL.CANTIDAD * - 1
ELSE fl.cantidad
END AS CANTIDAD
--CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.TOTAL_IMPUESTO1 * - 1
-- ELSE fl.TOTAL_IMPUESTO1
-- END AS IVA,
-- CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.COSTO_TOTAL_LOCAL * -1
-- ELSE FL.COSTO_TOTAL_LOCAL
-- END AS COSTO_TOTAL_LOCAL,
-- CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.PRECIO_TOTAL * - 1
-- ELSE fl.PRECIO_TOTAL
-- END AS PRECIO_TOTAL,
-- --GANANCIA
-- CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.PRECIO_TOTAL * - 1
-- ELSE fl.PRECIO_TOTAL
-- END - CASE
-- WHEN f.tipo_documento = 'D'
-- THEN FL.COSTO_TOTAL_LOCAL * -1
-- ELSE FL.COSTO_TOTAL_LOCAL
-- END AS GANANCIA
FROM
SoftlandERP.CORSARIO.FACTURA_LINEA AS FL
INNER JOIN
SoftlandERP.CORSARIO.FACTURA AS 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
WHERE
(F.ANULADA = 'N')
AND (YEAR(FL.FECHA_FACTURA) IN (2015, 2016, 2017))
Quelle est la précision de SoftlandERP.CORSARIO.FACTURA_LINEA.FECHA_FACTURA? Je suppose que c'est un type de données numérique/décimal? –
FECHA_FACTURA de FACTURA_LINEA a datetime –
Si vous modifiez le VARCHAR (10) dans votre convertir en VARCHAR (MAX) recevez-vous toujours cette erreur? –