Ayuda con codigo de consulta
Publicado por jhonatan ruiz (4 intervenciones) el 16/11/2016 00:42:43
Estimados amigos y colegas buenas noches les escribo por lo siguiente.
Estoy tratando de crear una vista en SQL Server 2008 para poder generar luego un reporte pero al momento de colocar la sentencia case no logro que me haga lo que necesito he buscado y buscado pero aun no logro nada.
les anexo una copia de la vista para que tengan una dia.
-----------------------------------------------------------------------------------------------------
Básicamente lo que quiero es que al momento de restar las fechas crear una sentencia que lea el resultado de las fechas que se encuentra en la columna DIASCREDITO que bien sea de paso no es mas que un resultado de un DATEDIFF y asigne valores X si el valor se encuentra entre un >= y un <=.
Pero mi sql me arroja el siguiente error no se si lo estoy haciendo bien porque no conozco mucho de sql pero creo estarlo intentando.
Error en la lista de argumentos de función: no se reconoce 'CASE'.
Error en la lista de argumentos de función: no se reconoce 'WHEN'.
No se puede analizar el texto de la consulta.
Por ultimo muestra un cuadro que dice SINTAXIS INCORRECTA CERCA DE LA PALABRA CASE.
Ayuda please
Estoy tratando de crear una vista en SQL Server 2008 para poder generar luego un reporte pero al momento de colocar la sentencia case no logro que me haga lo que necesito he buscado y buscado pero aun no logro nada.
les anexo una copia de la vista para que tengan una dia.
-----------------------------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT dbo.SAPAGCXC.TipoCxc, dbo.SAPAGCXC.Monto AS [MONTO PAGADO], dbo.SAPAGCXC.Descrip AS [DETALLE DEL PAGO], dbo.SAPAGCXC.EsReten AS [TIENE RET],
dbo.SAPAGCXC.BaseReten AS [BASE RET PAG], dbo.SAPAGCXC.BaseImpo AS [BASE IMP PAG], dbo.SAPAGCXC.TExento AS [P EXENTO PAGO],
dbo.SAPAGCXC.MtoTax AS [MONTO IVA PAGO], dbo.SAACXC.NumeroN AS [NUMERO FACT], dbo.SAFACT.TipoFac AS [TIPO DE DOC],
dbo.SAFACT.NumeroD AS [NUMERO F], dbo.SAFACT.Monto AS [MONTO ORIGINAL], dbo.SAFACT.FechaE AS [FECHA FACT],
dbo.SAPAGCXC.FechaE AS [FECHA DEL PAGO], dbo.SAACXC.CodVend AS [CODIG VEND], dbo.SAACXC.TipoCxc AS [TIPO CXC], dbo.SAFACT.MtoTax,
dbo.SAFACT.MtoTotal, dbo.SAACXC.NumeroD, dbo.SAFACT.CodClie, dbo.SAFACT.Descrip, DATEDIFF(d, dbo.SAFACT.FechaE, dbo.SAPAGCXC.FechaE)
AS DIASCREDITO,
CASE(
WHEN DIASCREDITO >=0 and DIASCREDITO <=3 THEN 3,5
WHEN DIASCREDITO >=4 and DIASCREDITO <=7 THEN 3,25
WHEN DIASCREDITO >=8 and DIASCREDITO <=14 THEN 3
WHEN DIASCREDITO >=15 and DIASCREDITO <=30 THEN 2
WHEN DIASCREDITO >=31 and DIASCREDITO <=30000000 THEN 0
ELSE)
FROM dbo.SAPAGCXC INNER JOIN
dbo.SAACXC ON dbo.SAPAGCXC.NroPpal = dbo.SAACXC.NroUnico INNER JOIN
dbo.SAFACT ON dbo.SAACXC.NumeroN = dbo.SAFACT.NumeroD
Básicamente lo que quiero es que al momento de restar las fechas crear una sentencia que lea el resultado de las fechas que se encuentra en la columna DIASCREDITO que bien sea de paso no es mas que un resultado de un DATEDIFF y asigne valores X si el valor se encuentra entre un >= y un <=.
Pero mi sql me arroja el siguiente error no se si lo estoy haciendo bien porque no conozco mucho de sql pero creo estarlo intentando.
Error en la lista de argumentos de función: no se reconoce 'CASE'.
Error en la lista de argumentos de función: no se reconoce 'WHEN'.
No se puede analizar el texto de la consulta.
Por ultimo muestra un cuadro que dice SINTAXIS INCORRECTA CERCA DE LA PALABRA CASE.
Ayuda please
Valora esta pregunta
0