Mira este ejemplo se que quizas te pueda ayudarm, yo utilizo los mencionados en el titulo y me funcionan de esta manera esta es una consulta que hice justo para lo que tu necesitas, me cuenta como te va, aunque esto lo hice con MySQL pueda que te funcione para Oracle que dices es lo que tienes. Bueno me cuentas.
Maury Manosalva.
Bucaramanga, Colombia
Código Delphi
[-]
with DMReportes.QryConsRepEme do
begin
Close;
SQL.Clear;
ConsRepEme := 'Select RE.IdRepEmergencia "Nro. Reporte", TE.NomTipEmergencia "Tipo", RE.FechaRep "Fecha", RE.HoraRep "Hora", RE.NomReportante "Persona que Reporta", RE.Telefono "Teléfono",';
ConsRepEme := ConsRepEme +' RE.RepSuceso "Reporte Suceso", E.NomEstacion "Estación Asignado", B.Nombarrio "Barrio", EE.NomEdoEmergencia "Estado Actual", CR.NomCanalRep "Canal de Reporte", RE.DirEmergencia "Dirección", RE.LogUsuario "Usuario" from tabrepemergencia RE,';
ConsRepEme := ConsRepEme +' tabtipemergencia TE, tabestacion E, tabbarrios B, tabedoemergencia EE, tabcanalrep CR';
ConsrepEme := ConsRepEme +' where RE.IdtipEmergencia = TE.IdTipEmergencia and RE.IdEstacion = E.IdEstacion and RE.IdBarrio = B.IdBarrio and RE.IdEdoEmergencia = EE.IdEdoEmergencia and RE.IdCanalReporte = CR.IdcanalReporte';
if (cmbTipEmergencia.KeyValue <> null) then
ConsrepEme := ConsRepEme +' and TE.IdTipEmergencia = '+cmbTipEmergencia.KeyValue; if (cmbBarrio.KeyValue <> null) then
ConsrepEme := ConsRepEme +' and B.IdBarrio = '+cmbBarrio.KeyValue;
if (cmbCanReporte.KeyValue <> null) then
ConsrepEme := ConsRepEme +' and CR.IdCanalReporte = '+cmbCanReporte.KeyValue;
if (cmbEstacion.KeyValue <> null) then
ConsrepEme := ConsRepEme +' and E.IdEstacion = '+cmbEstacion.KeyValue;
if (cmbEstado.KeyValue <> null) then
ConsrepEme := ConsRepEme +' and EE.IdEdoEmergencia = '+cmbEstado.KeyValue;
ConsrepEme := ConsRepEme +' order By IdRepEmergencia';
SQL.Add(ConsRepEme);
open;
grdRepEme.Refresh;