我會盡力幫助你以不同的方式。我在這裏創建了一些SQL語句,並且我需要知道執行過程中的每個失敗。
如果它們都工作,我們需要創建SQL語句來逐字段地插入來發現問題所在。找出問題並不是更好的技術,但最容易幫助你。
首先
--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))
二
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))
三
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))
四
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))
五
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))
第六
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))
第七
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))
第八
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))
什麼是SoftlandERP.CORSARIO.FACTURA_LINEA.FECHA_FACTURA的精度?我認爲這是一個數字/十進制數據類型? –
來自FACTURA_LINEA的FECHA_FACTURA有日期時間 –
如果在轉換爲VARCHAR(MAX)時更改VARCHAR(10),是否仍然收到此錯誤? –