Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/09/2014, 09:59
CrepuX
 
Fecha de Ingreso: mayo-2007
Mensajes: 35
Antigüedad: 17 años
Puntos: 0
Respuesta: Añadir campo a vista y unificar con otro

Hola Libras. Gracias por la respuesta!

Al final conseguí sacar el campo. El caso es que la estoy sacando con más campos y ahora me falla en un DateDiff entre la fecha actual y un campo fecha de mi BBDD.

La consulta es:

SELECT TOP (100) PERCENT O.IdOp AS [ID Operacion], COALESCE (G.Grupo, C.Nombre) AS [Grupo Inversor],
CASE WHEN G.PorcentajeParticipacion IS NOT NULL THEN dbo.Money2Varchar(G.PorcentajeParticipacion, 2, '%')
ELSE '' END AS Participación,
CASE WHEN G.PorcentajeParticipacion > 0 then (o.impop * G.PorcentajeParticipacion) /(100)
ElSE o.impop end as Nominal,
CASE WHEN (DATEDIFF(d, CONVERT(date, GETDATE(), 103), o.FchPrimerVto) < 30) THEN '1M'
WHEN (DATEDIFF(d, CONVERT(date, GETDATE(), 103), o.FchPrimerVto) < 90) THEN '3M'
ELSE '6M'end AS Plazo

FROM (SELECT DISTINCT IdOp, idCliente, sum(ImpOp) as impop, FchPrimerVto
FROM dbo.Operaciones group by IdOp, idCliente, FchPrimerVto ) AS O INNER JOIN
dbo.Clientes AS C LEFT OUTER JOIN
(SELECT G1.IDCliente, C1.ClaveDescr AS Grupo, G1.PorcentajeParticipacion
FROM dbo.GruposInversoresClientes AS G1 INNER JOIN
dbo.Claves AS C1 ON G1.GrupoInversor = C1.CodClave
WHERE (C1.GrupoClave = 'GRI') AND (C1.Cabecera = 1) AND (C1.Modificable = 1)) AS G
ON C.IdCliente = G.IDCliente ON O.IdCliente = C.IdCliente

WHERE (C.IDCartera = 2)

ORDER BY [Grupo Inversor]

El fallo que me lanza es "Arithmetic overflow error converting expression to data type datetime." en lo que te pongo en rojo.

Si a mi campo le pongo Convert(date,o.FchPrimerVto)) en esa linea marcada, me dice "Explicit conversion from data type int to date is not allowed."

Y si directamente le pongo una fecha con formato 'yyyyMMdd', no falla la consulta, pero el CASE no funciona bien y ponga la fecha que ponga, me saca 1M

Si tienes cualquier sugerencia, será bienvenida.