Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: aedEric en Septiembre 23, 2014, 09:45:19 pm
-
Hola Foristas y amigos, me he atorado en un consulta espero alguno amigo o compañero forista me pueda orientar se lo voy agradecer muchisimo gracias
tengo una duda tengo la siguiente consulta
sSql = "select IDENT, TIPO_IDENT, sum(DONATIVO) AS TOTAL, count(*) as CANTIDAD From (select FECHAE, IDENT, TIPO_IDENT, DONATIVO, ID_UUID from CAJA_INTENCIONES WHERE FECHAE Between '" & sFechaIni & "' AND '" & sFechaFin & "' AND STATUS LIKE '%" & sST & "%' AND ID_UUID LIKE '%" & sIdEuuid & "%' Union All select FECHAE, IDENT, TIPO_IDENT, DONATIVO, ID_UUID from CAJA_SERVICIOS WHERE FECHAE Between '" & sFechaIni & "' AND '" & sFechaFin & "' AND STATUS LIKE '%" & sST & "%' AND ID_UUID LIKE '%" & sIdEuuid & "%') as T group by IDENT, TIPO_IDENT"
trabaja bien,. mi problema es qu deseo que la consulta me retorne datos aunque existan registros en el campo ID_UUID como null , ya que si pongo la variable sin nada no retorna dichos datos por existen campos null e intentado ocupar null pero no he logrado el exito deseado
sIdEuuid = ""
de antemano gracias
saludos
-
SELECT IDENT, TIPO_IDENT, IFNULL(SUM(DONATIVO),0) AS TOTAL, COUNT(*) AS CANTIDAD
FROM (SELECT FECHAE, IDENT, TIPO_IDENT, DONATIVO, ID_UUID
FROM CAJA_INTENCIONES
WHERE FECHAE BETWEEN '" & sFechaIni & "' AND '" & sFechaFin & "' AND STATUS LIKE '%" & sST & "%' AND ID_UUID LIKE '%" & sIdEuuid & "%'
UNION ALL SELECT FECHAE, IDENT, TIPO_IDENT, DONATIVO, ID_UUID
FROM CAJA_SERVICIOS
WHERE FECHAE BETWEEN '" & sFechaIni & "' AND '" & sFechaFin & "' AND STATUS LIKE '%" & sST & "%' AND ID_UUID LIKE '%" & sIdEuuid & "%') AS T
GROUP BY IDENT, TIPO_IDENT
-
Hola Enter muchas Gracias por contestar te agradezco tu apoyo saludos desde México
-
Solo para aclarar, me parece que IfNull funciona solo en MySQL? no estoy seguro, tan metido en Firebird me hace desconocerlo.
Como respuesta genérica adicional o salvo que no te funcione cambias eso por Coalesce que pertenece al TransactSQL.
De tal manera que quede asi:
SELECT COALESCE(TuCampo, 0) FROM TUTABLASi TuCampo no es nulo te dará el valor de TuCampo sino te dará 0 o el valor que le pongas.
Y sino la otra alternativa es tratarlo a nivel de VB6, o sea, recibe el dato Null y lo tratas junto con el Iif:
TuDato = iif(IsNull(TuCampo), 0, TuCampo)Esto es si tu campo es nulo métele cero o el valor que quieras, sino pondrás el valor de TuCampo u otro que quieras.
Saludos
-
amigo saludos Yvan muchas gracias por tu aporte efectivamente en firebird no funciona lo que me hizo favor Enter aportarme, muchas gracias tengo ahora más claro como tratar este tema saludos como siempre y gracias