Ver Mensaje Individual
  #1  
Antiguo 13-10-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Reputación: 21
AGAG4 Va por buen camino
Como usar el CASE en 2 SubConsultas ????

Buen día, tengo una pregunta que no he podido responderme, lo que pasa es que tengo 1 consulta maestra con algunas subconsultas, estas subconsultas me regresan ciertos valores de tipo flotante mediante alguna suma ó resta, este resultado participan 2 select independientes, por lo que si en dicho resultado cae en 0.01 Centavos quiero dejar el resultado en CERO, pongo el ejemplo:
Código SQL [-]
/*Select Maestro*/
SELECT V.CLAVE,V.NOMBRE,C.CLIENTE,CC.NOMCLI, 

/*Primer SubConsulta*/
(FUD_ROUND((SELECT COALESCE(SUM(FUD_ROUND(IMPORTE,2)),0) FROM TCARGOS WHERE CAST('12.10.2006' AS DATE) - FECHAMOV <15 AND FECHAMOV<='12.10.2006' AND CARABO = 1 AND CLIENTE = C.CLIENTE AND CVEDOCUM <>'CREM')
 -
/*Segunda SubConsulta*/
(SELECT COALESCE(SUM(FUD_ROUND(IMPORTE,2)),0) FROM TABONOS WHERE CAST('12.10.2006' AS DATE) - FECHAFAC <15 AND FECHAMOV<='12.10.2006' AND CARABO = 2 AND CLIENTE = C.CLIENTE ),2)) VNORMAL, 
......
El Resultado del Primer Select - Segundo Select = un Valor, dicho valor quiero saber si no pasa del Tope de 0.01 ó 0.02 Centavos, si es el caso, el Resultado lo tengo que dejar a CEROS, ya probe con el CASE, pero es a nivel de Select y no puedo usarlo a nivel de 2 Select, esta consulta SQL lo hago para mostrar datos en el QReport, pongo el ejemplo de como aparecen los datos:
VNORMAL 15DIAS 30 DIAS 45 DIAS TOTAL
800.00 200.00 400.00 0.01 $1,400.01

Lo que podría hacer sería que en cada uno de los QrDBLabel,dentro del evento OnPrint, validar dicho valor para mostrar en ceros, pero tendría que hacerlo también en el Total dentro de la suma que uso en el QrExpr, donde tengo en la propiedad Expression lo siguiente:
Código Delphi [-]
ibQuery.VNORMAL+ibQuery.V15DIAS+ibQuery.V30DIAS+ibQuery.V40DIAS
Alguien sabe como hacer una condicionante dentro de la propiedad Expression????

Sería algo por el estilo:
Código Delphi [-]
(Case ibQuery.VNORMAL > 0.01  Then
ibQuery.VNORMAL ELSE 0 END ) +
(Case ibQueryGral.V15DIAS > 0.01  Then
ibQueryGral.V15DIAS ELSE 0 END ) +
.....

Código:
Quedaría asi:
VNORMAL    15DIAS    30 DIAS     45 DIAS      TOTAL
  800.00      200.00     400.00          0           $1,400.00
OJO PARA LOS ADMINISTRADORES DEL CLUB: Dejo bien Acomodado el EJEMPLO de arriba y se me DESORDENA cuando grabo el HILO.

Espero me haya explicado....
Agradezco cualquier sugerencia.
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 13-10-2006 a las 19:45:49.
Responder Con Cita