SQL - Condicional

   
Vista:

Condicional

Publicado por Armand (3 intervenciones) el 20/12/2010 12:23:18
Hola a todos, alguien me podria ayudar a montar esto:

Gracias por vuestra ayuda.

Necesito condicionar este SELECT a que la fecha sea:
RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION

Y si no se cumple esta condicion, que tome como fecha la de RECIBOS.REC_Facturacion
=======================================================================

SELECT SUM(RECIBOS.REC_ComCorreduria) AS Total,
OFICINAS.OFI_Nombre AS Oficina,
RECIBOS.REC_Efecto AS Fecha
FROM RECIBOS
INNER JOIN OFICINAS
ON RECIBOS.REC_OfiCode = OFICINAS.OFI_Code
WHERE RECIBOS.REC_Oficode IN (2,4,8,16,32,64,128,256,512,1024,2048,4096)
AND RECIBOS.REC_Situacion=5
AND RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION
-- (SI no se cumple esta , que tome como fecha la de RECIBOS.REC_FACTURACION)
AND year(RECIBOS.REC_Efecto) BETWEEN '2009' AND '2010'
GROUP BY OFICINAS.OFI_Nombre, RECIBOS.REC_Efecto

=======================================================================
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Condicional

Publicado por m_vicente (2 intervenciones) el 27/12/2010 16:27:25
Me imagino que el condicional por lo que dices lo quieres en la seleccion de campos:

SELECT SUM(RECIBOS.REC_ComCorreduria) AS Total,
OFICINAS.OFI_Nombre AS Oficina,
case when RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION then RECIBOS.REC_Efecto
else RECIBOS.REC_FACTURACION
end AS Fecha
FROM RECIBOS
INNER JOIN OFICINAS
ON RECIBOS.REC_OfiCode = OFICINAS.OFI_Code
WHERE RECIBOS.REC_Oficode IN (2,4,8,16,32,64,128,256,512,1024,2048,4096)
AND RECIBOS.REC_Situacion=5
AND year(RECIBOS.REC_Efecto) BETWEEN '2009' AND '2010'
GROUP BY OFICINAS.OFI_Nombre, case when RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION then RECIBOS.REC_Efecto
else RECIBOS.REC_FACTURACION
end

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar