Ayuda sql Server - Procedimiento Almacenado
Publicado por Alberto (9 intervenciones) el 12/01/2021 04:15:56
Buenas Tardes amigos;
Tengo el Siguiente Procedimiento almacenado solo tiene un parámetro, pero al ejecutarlo me sale error de conversión pero no se donde modificar por favor ayúdenme, Gracias.
EXEC [dbo].[SYP_RPT_CAJACHICA_METAX] 'C1011103-21001'
Este el el error:
Msg 245, Level 16, State 1, Procedure SYP_RPT_CAJACHICA_METAX, Line 20 [Batch Start Line 54]
Conversion failed when converting the nvarchar value '1011111 -' to data type int.
Tengo el Siguiente Procedimiento almacenado solo tiene un parámetro, pero al ejecutarlo me sale error de conversión pero no se donde modificar por favor ayúdenme, Gracias.
EXEC [dbo].[SYP_RPT_CAJACHICA_METAX] 'C1011103-21001'
Este el el error:
Msg 245, Level 16, State 1, Procedure SYP_RPT_CAJACHICA_METAX, Line 20 [Batch Start Line 54]
Conversion failed when converting the nvarchar value '1011111 -' to data type int.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
USE [PRUEBA_METAX]
GO
/****** Object: StoredProcedure [dbo].[SYP_RPT_CAJACHICA_METAX] Script Date: 11/01/2021 17:34:46 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SYP_RPT_CAJACHICA_METAX]
(@ref1 nvarchar(30)
)AS
DECLARE @accountNum as int
DECLARE @MainCurr as nvarchar(10)
DECLARE @Comments1 As NVARCHAR(100)
DECLARE @Comments2 As NVARCHAR(100)
BEGIN
SET @accountNum = (SELECT B."AcctCode" FROM OVPM A INNER JOIN VPM4 B on A."DocEntry" = B."DocNum" WHERE A."U_SYP_TPOOPER" = 'CC01' and A."Canceled" = 'N' and A."U_SYP_REF2" = @ref1)
SET @MainCurr = (SELECT "MainCurncy" FROM OADM)
--SET @Comments1 = (SELECT A."Comments" FROM OVPM A INNER JOIN VPM4 B on A."DocEntry" = B."DocNum" WHERE A."U_SYP_TPOOPER" = 'CC01' and A."Canceled" = 'N' and A."U_SYP_REF2" = @ref1)
--SET @Comments2 = (SELECT A."JrnlMemo" FROM OVPM A INNER JOIN VPM4 B on A."DocEntry" = B."DocNum" WHERE A."U_SYP_TPOOPER" = 'CC01' and A."Canceled" = 'N' and A."U_SYP_REF2" = @ref1)
SELECT T0."TransId", T0."TransType", T0."BaseRef", T1."Account", ISNULL(T1."FCCurrency",'S/') as "Moneda", CASE WHEN T1."Debit" > 0 THEN T1."Debit" ELSE -1 * T1."Credit" END AS "Amount",
T1."Ref2", T1."LineMemo",CASE WHEN T1."Debit" > 0 THEN 'in' ELSE 'out' END as "Type",T0."RefDate", ISNULL(T0."Indicator",'') as "Indicator",
CASE T0."TransType" WHEN 46 THEN (SELECT A."U_SYP_TPOOPER" FROM OVPM A WHERE A."DocEntry" = T0."BaseRef") END AS "TipoPago",
CASE T0."TransType" WHEN 46 THEN CASE (SELECT A."DocType" FROM OVPM A WHERE A."DocEntry" = T0."BaseRef")
WHEN 'S' THEN CASE WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") > 1 THEN 'Varios Documentos'
WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") = 0 THEN 'Pago a Cuenta' + (SELECT A."CardCode" FROM OVPM A WHERE A."DocNum" = T0."BaseRef")
ELSE CASE (SELECT B."InvType" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef")
WHEN 18 THEN (SELECT C."CardName" + ' (' + C."U_SYP_MDTD" + '-' + C."U_SYP_MDSD" + '-' + C."U_SYP_MDCD" +')' FROM OPCH C WHERE C."DocEntry" = (SELECT B."DocEntry" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef"))
END
END
WHEN 'A' THEN CASE WHEN (SELECT COUNT(*) FROM VPM4 B WHERE B."DocNum" = T0."BaseRef") > 1 THEN 'Varios Gastos'
ELSE ISNULL((SELECT B."Descrip" FROM VPM4 B WHERE B."DocNum" = T0."BaseRef"),T1."LineMemo")
END
WHEN 'C' THEN CASE WHEN (SELECT U_SYP_TPOOPER FROM OVPM B WHERE B."DocEntry" = T0."BaseRef") = 'ERC1' THEN 'Apertura ER (' + (SELECT U_SYP_NUMER FROM OVPM B WHERE B."DocEntry" = T0."BaseRef") + ')'
WHEN (SELECT U_SYP_TPOOPER FROM OVPM B WHERE B."DocEntry" = T0."BaseRef") = 'ERC2' THEN 'Reembolso ER (' + (SELECT U_SYP_NUMER FROM OVPM B WHERE B."DocEntry" = T0."BaseRef") + ')'
END
END
END AS "Desc",
(SELECT A."DocType" FROM OVPM A WHERE A."DocEntry" = T0."BaseRef") AS "tipoOVPM",
(SELECT B."InvType" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") AS "TipoDOC",
(SELECT ISNULL(C."Comments",'') FROM OPCH C WHERE C."DocEntry" = (SELECT B."DocEntry" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef"))
AS "Comentario",
CASE T0."TransType" WHEN 46 THEN CASE (SELECT A."DocType" FROM OVPM A WHERE A."DocEntry" = T0."BaseRef")
WHEN 'S' THEN CASE WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") > 1 THEN 'OVPM'
WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") = 0 THEN 'OVPM'
ELSE CASE (SELECT B."InvType" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef")
WHEN 18 THEN 'OPCH'END
END
WHEN 'A' THEN 'OVPM'
WHEN 'C' THEN 'OVPM'
END
WHEN 30 THEN 'OJDT'END AS "Table",
CASE T0."TransType" WHEN 46 THEN CASE (SELECT A."DocType" FROM OVPM A WHERE A."DocEntry" = T0."BaseRef")
WHEN 'S' THEN CASE WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") > 1 THEN T0."BaseRef"
WHEN (SELECT COUNT(*) FROM VPM2 B WHERE B."DocNum" = T0."BaseRef") = 0 THEN T0."BaseRef"
ELSE CASE (SELECT B."InvType" FROM VPM2 B WHERE B."DocNum" = T0."BaseRef")
WHEN 18 THEN (SELECT A."DocEntry" FROM VPM2 A WHERE A."DocNum" = T0."BaseRef")
END
END
WHEN 'A' THEN T0."BaseRef"
END
WHEN 30 THEN T0."BaseRef"
END AS "DocEntry",
(SELECT "CompnyName" FROM OADM) as "Company", @MainCurr as "MainCurr", @accountNum as "CuentaCC" , @Comments1 as "Comentarios 1", @Comments2 as "Comentarios 2"
FROM OJDT T0 INNER JOIN JDT1 T1 ON T0."TransId" = T1."TransId"
WHERE "Account" = @accountNum and T0."StornoToTr" is null
and T0."TransId" not in (SELECT DISTINCT A1."StornoToTr" FROM OJDT A1 WHERE "StornoToTr" is not null)
and T1."Ref1" = @ref1
ORDER BY T0."RefDate", T0."TransId";
END
Valora esta pregunta


0

