Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Condicional si o si no

Estas en el tema de Condicional si o si no en el foro de SQL Server en Foros del Web. 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 < ...
  #1 (permalink)  
Antiguo 20/12/2010, 11:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Condicional si o si no

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
  #2 (permalink)  
Antiguo 20/12/2010, 14:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Condicional si o si no

Porque no haces un query dinamico algo asi:

Código SQL:
Ver original
  1. DECLARE @query VARCHAR(MAX)
  2.  
  3. SET @query='
  4. SELECT SUM(RECIBOS.REC_ComCorreduria) AS Total,
  5. OFICINAS.OFI_Nombre AS Oficina,
  6. RECIBOS.REC_Efecto AS Fecha
  7. FROM RECIBOS
  8. INNER JOIN OFICINAS
  9. ON RECIBOS.REC_OfiCode = OFICINAS.OFI_Code
  10. WHERE RECIBOS.REC_Oficode IN (2,4,8,16,32,64,128,256,512,1024,2048,4096)
  11. AND RECIBOS.REC_Situacion=5'
  12.  
  13. aqui tu condicion
  14.  SET @query=@query+ 'AND RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION '
  15. ELSE
  16. otra cosa
  17.  
  18. -- (SI no se cumple esta , que tome como fecha la de RECIBOS.REC_FACTURACION)
  19.  
  20. SET @query=@query +
  21.  
  22. 'AND year(RECIBOS.REC_Efecto) BETWEEN '2009' AND '2010'
  23. GROUP BY OFICINAS.OFI_Nombre, RECIBOS.REC_Efecto
  24. '
  25. EXEC @query

Saludos!
  #3 (permalink)  
Antiguo 21/12/2010, 08:11
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Condicional si o si no

Te sale mucho mejor realizar un CASE para esa query.-
el CASE te funciona relativamente como un IF dentro de los select.-


Cita:
SELECT ...............
case when RECIBOS.REC_EFECTO < RECIBOS.REC_FACTURACION
then 'LO CONDICIONAS A LA FECHA QUE QUIERAS...
ELSE'
RECIBOS.REC_Facturacion
END as "FECHA"

FROM ..............
  #4 (permalink)  
Antiguo 21/12/2010, 10:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Condicional si o si no

Cita:
Iniciado por Garilax Ver Mensaje
Te sale mucho mejor realizar un CASE para esa query.-
el CASE te funciona relativamente como un IF dentro de los select.-
Puede usar un case, pero lo que se necesita es cambiar la sentencia where

Saludos!
  #5 (permalink)  
Antiguo 21/12/2010, 10:34
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Condicional si o si no

Quizas esto ayude.-
Un Case dentro del Where.-

http://social.msdn.microsoft.com/For...2-12867c0c1411

Etiquetas: condicional
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:54.